导航:首页 > 编程语言 > pythonsetindex

pythonsetindex

发布时间:2022-03-08 21:10:38

① 关于python里面的set,set之后的集合元素是如何让排列的

集合set中的元素是没有顺序的。

② Python中list和set的区别

List
字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List:
L = [12, 'China', 19.998]

可以看到并不要求元素的类型都是一样的。当然也可以定义一个空的List:
L = []

Python中的List是有序的,所以要访问List的话显然要通过序号来访问,就像是数组的下标一样,一样是下标从0开始:
>>> print L[0]
12

千万不要越界,否则会报错
>>> print L[3]
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
IndexError: list index out of range

List也可以倒序访问,通过“倒数第x个”这样的下标来表示序号,比如-1这个下标就表示倒数第一个元素:
>>> L = [12, 'China', 19.998]
>>> print L[-1]
19.998

-4的话显然就越界了

>>> print L[-4]

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <mole>
print L[-4]
IndexError: list index out of range
>>>

List通过内置的append()方法来添加到尾部,通过insert()方法添加到指定位置(下标从0开始):

>>> L = [12, 'China', 19.998]
>>> L.append('Jack')
>>> print L
[12, 'China', 19.998, 'Jack']
>>> L.insert(1, 3.14)
>>> print L
[12, 3.14, 'China', 19.998, 'Jack']
>>>

注意python中有几个方法与append类似,但是效果完全不一样,使用时需根据实际需求选用正确方法
1.append() 向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加
2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加
比如 list1=[1, 2, 3] .list2=[4, 5, 6]
list1.append(list2) 的结果为[1, 2, 3, [4, 5, 6]]
list1.extend(list2) 的结果为[1, 2, 3, 4, 5, 6]
3.+ 直接用+号看上去与用extend()一样的效果,但是实际上是生成了一个新的列表存这两个列表的和,只能用在两个列表相加上
4.+= 效果与extend()一样,向原列表追加一个新元素,在原有列表上增加
通过pop()删除最后尾部元素,也可以指定一参数删除指定位置:

>>> L.pop()
'Jack'
>>> print L
[12, 3.14, 'China', 19.998]
>>> L.pop(0)
12
>>> print L
[3.14, 'China', 19.998]

也可以通过下标进行复制替换
>>> L[1] = 'America'
>>> print L
[3.14, 'America', 19.998]

Set
set也是一组数,无序,内容又不能重复,通过调用set()方法创建:
>>> s = set(['A', 'B', 'C'])

对于访问一个set的意义就仅仅在于查看某个元素是否在这个集合里面,注意大小写敏感:
>>> print 'A' in s
True
>>> print 'D' in s
False

也通过for来遍历:

s = set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])

for x in s:
print x[0],':',x[1]

>>>
Lisa : 85
Adam : 95
Bart : 59

通过add和remove来添加、删除元素(保持不重复),添加元素时,用set的add()方法
>>> s = set([1, 2, 3])
>>> s.add(4)
>>> print s
set([1, 2, 3, 4])

如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
>>> s = set([1, 2, 3])
>>> s.add(3)
>>> print s
set([1, 2, 3])

删除set中的元素时,用set的remove()方法:
>>> s = set([1, 2, 3, 4])
>>> s.remove(4)
>>> print s
set([1, 2, 3])
如果删除的元素不存在set中,remove()会报错:
>>> s = set([1, 2, 3])
>>> s.remove(4)
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
KeyError: 4

所以如果我们要判断一个元素是否在一些不同的条件内符合,用set是最好的选择,下面例子:

months = set(['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec',])
x1 = 'Feb'
x2 = 'Sun'

if x1 in months:
print 'x1: ok'
else:
print 'x1: error'

if x2 in months:
print 'x2: ok'
else:
print 'x2: error'

>>>
x1: ok
x2: error

另外,set的计算效率比list高

③ 关于python list index out of range

一般外部输入的数据都可能存在问题。所以通常在readlines后要做一次处理
for
line
in
file.readlines():
if
not
line.strip():continue
r
=
line.split('\t')
if
len(r)<3:continue
print
r
try:
records.setdefault(int(r[1]),
{})
records[int(r[1])].setdefault(int(r[0]),
{})
records[int(r[1])][int(r[0])]
=
float(r[2])
except
ValueErro:
continue
这样就避免了空行,字段数不足,以及类型转换出错。

④ python中如何在set中添加元素语句是什么

myset = set()
myset.add(1)
print(myset) # 输出 {1},即当前set中包含了一个元素,该元素为整数1
myset.add(2)
myset.add(100.1)
print(myset) # {1, 2, 100.1}
myset.add(1)
print(myset) # {1, 2, 100.1} 由于set中元素具有唯一性,所以重复元素将不会多次被加入set中

⑤ python dataframe multiindex 有几层

如何建立多重索引

import pandas as PD

df = PD.DataFrame()
df['a'] = list(range(10,30,2))
df['b'] = df['a'] // 10df.index.name = 'id'#drop : boolean, default True Delete columns to be used as the new indexdf = df.set_index([df['b'], df.index], drop=False)12345678

至此建立了一个带二重索引的dataframe

⑥ python怎么知道列表中最大的元素是第几个

  1. l = [1,2,3]

    maxnum = max(l)

    print(l.index(maxnum))

    index函数只会返回列表里第一个匹配的值,如果最大值在列表里有多个,则无法全部查询到

  2. 一个冒泡排序的思路,逐一对比,并记住当前最大值的下标,可以得到最大值的多个下标

l = [1,2,3,0,3]

indeiesDict = {}

maxnum = 0

for i in range(len(l)):

if i > 0 :

if l[i] >= l[i-1]:

maxnum = l[i]

index = i

else:

maxnum = l[i-1]

index = i-1

if indeiesDict.get(maxnum):

indeiesDict[maxnum].add(index)

else:

indeiesDict[maxnum] = set([index])

print(maxnum,indeiesDict[maxnum])

⑦ python 问题 reset_index(drop=True

reset_index用来重置索引,因为有时候对dataframe做处理后索引可能是乱的。

drop=True就是把原来的索引index列去掉,重置index。

drop=False就是保留原来的索引,添加重置的index。

两者的区别就是有没有把原来的index去掉。

此外还有一个参数:inplace

inplace=False(默认)表示原数组不变,对数据进行修改之后结果给新的数组。

inplace=True表示直接在原数组上对数据进行修改。

(7)pythonsetindex扩展阅读:

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。

⑧ python3'set'object does not support indexing怎么办

错误显示的是“元组”对象不支持索引;

但是列表支持索引;

a={"a","b","c"}#这是元组,不支持索引
a=["a","b","c"]#这是列表,支持索引,只要把花括号改成方括号就行

⑨ 关于python里面的set,set之后的集合元素是如何让排列的RT,看下面的例...

set是无序集合,python不保证其中元素的次序.打印结果取决于其内部存储结构和输出方式.
你打个长的就知道了
>>>
set('012345678910')
set(['1','0','3','2','5','4','7','6','9','8'])
说明它是按类似二维数组的方式保存的,先把重复的元素剔除,然后把元素按21436587的顺序存进二维数组

⑩ python 读取txt,将每行存为list

import pandas as pd
df=pd.read_table('d:/data.txt',sep=":",encoding='gbk',header=None)
df.columns=['a','b']
df['b']=df.b.map(lambda x:x[1:-1].replace("'",'').replace(' ',''))
df1=pd.concat([df.a,df.b.str.split(',',expand=True)],axis=1)
df1=df1.set_index('a')
df1=df1.stack().reset_index().drop('level_1',axis=1)
df1.to_excel('d:/out_data.xlsx',header=None,index=None)

阅读全文

与pythonsetindex相关的资料

热点内容
javasocket返回 浏览:934
真实服务器是什么 浏览:638
想当程序员中专选什么专业 浏览:807
解压玩具开出隐藏款 浏览:59
php传参中文乱码 浏览:100
简述内核编译过程 浏览:474
神舟电脑解压文件 浏览:439
HMI编译内部错误 浏览:626
数字编译器如何编译单位抽样公式 浏览:716
red5服务器能干什么 浏览:493
什么安卓app支持mkv 浏览:469
程序员父母在一起 浏览:229
ai打开pdf只有一页 浏览:440
招商银行app怎么获取积分 浏览:594
linux下的vi参数命令 浏览:267
智能算法期刊 浏览:583
编译原理dfa用来做什么 浏览:626
广告屏要怎么连接服务器 浏览:331
java的gui是什么 浏览:596
为什么大家都买云服务器 浏览:664