Wang Haihua
🍈 🍉🍊 🍋 🍌
本文介绍Python中基本的复合数据结构:列表、元组、字典、集合。这些数据结构中的元素可以是不同类型的。
列表通过中括号[]
生成,元素有顺序(可根据位置进行索引),且元素可进行更改。
>>>a = [1,2.3,True,'hello']
注意,Python是从0开始索引的,第1个位置的索引是0
,第2个位置的索引是1
,以此类推。最后一位的索引可以用-1
表示.
>>>a[0]
1
>>>a[3]
'hello'
>>>a[-1]
'hello'
对列表指定位置元素重新赋值即可更改元素
>>>a[1]='two'
>>>a
[1,'two',True,'hello']
>>>a.append(10) # 末尾增加一个元素
>>>a
[1,'two',True,'hello',10]
>>>a.extend([30,40,50]) # 末尾增加多个元素
>>>a
[1,'two',True,'hello',10,30,40,50]
>>>a.insert(2,False) # 在索引为2的位置插入元素False,其他元素顺次后移
>>>a
[1,'two',False,True,'hello',10,30,40,50]
>>>a.pop(3) # 将索引为3的元素True删除
>>>a
[1,'two',False,'hello',10,30,40,50]
>>>a.remove(30) # 从左到右查找,将值为30的第一个元素删除
>>>a
[1,'two',False,True,'hello',10,40,50]
元组和列表很像,不过元组是通过圆括号()
生成的,同时元组内的元素不支持更改(无法进行元素替换、增加元素或减少元素等)
>>>b = (1,[3,4],'five') # 生成一个元组
>>>b[1][1] # 将b中第2个元素[3,4]的第2个元素4提取出来
4
>>>b[2]=5 # 尝试更新索引为2的值,但操作失败
TypeError Traceback (most recent call last)
<ipython-input-2-9241502132fc> in <module>
----> 1 b[2]=5
TypeError: 'tuple' object does not support item assignment
字典数据通过{}
生成,每个字典元素的结构为key:value
>>>c = {1:'Mon',2:'Tues',3:'Wed',4:'Thu',5:'Fri'} # 生成字典数据
>>>c[2] # 提取key为2的值'Tues'
'Tues'
>>>c[3] = 'W' # 将key为3的元素更改为'W'
>>>c
{1:'Mon',2:'Tues',3:'W',4:'Thu',5:'Fri'}
>>>c[6] = 'Sun' # 增加key为6的值'Sum'
>>>c
{1:'Mon',2:'Tues',3:'W',4:'Thu',5:'Fri',6:'Sun'}
>>>c.pop(1) # 删除key为1的值'Mon'
>>>c
{2:'Tues',3:'W',4:'Thu',5:'Fri',6:'Sun'}
集合中的元素没有顺序(所以无法通过位置进行索引)、互不相同,通过大括号{}
生成
>>>d = {1,2,3,4}
>>>1 in d # 判断元素1是否在d中
True
>>>d.pop() # 从d中随机删除一个元素
4
>>>d
{1,2,3}
>>>d.remove(2) # 将d中值为2的元素进行删除
>>>d
{1,3}
>>>d1 = d | {7,8} # 将d与集合{7,8}取并集
>>>d1
{1,3,7,8}
>>>d
{1,3}
>>>d & {1,4} 取d与{1,4}的交集
{1}
sum
¶>>>e= [1,2,3]
>>>sum(e)
6
>>>f=(5,6,7)
>>>sum(f)
18
>>>j={9,10,11}
>>>sum(j)
30
len
¶>>>len(e)
3
>>>len(f)
3
>>>len('hello')
5
max
min
¶>>>max(e)
3
>>>min(f)
5
b = (1,[3,4],'five') # 生成一个元组
b[2]=5
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-2-9241502132fc> in <module> ----> 1 b[2]=5 TypeError: 'tuple' object does not support item assignment