-
Python中的元祖-Tuples
python中的元组是有序的、不可改变的(一旦被创建,无法改变、增加、移除元组中的元素)、允许重复值、用圆括号括住
元组的很多用法都与列表一致,如通过索引访问元组元素、通过len()获取元组的长度、合并元组等
1#更改元组
2#由于元组一经创建便不可再更改,因此只能通过某些特殊方式来更改元组的元素
3#将元组转为列表再进行修改
4test=('a','b','c')
5new=list(test)
6print(new)#结果为['a', 'b', 'c']
7new[0]='A'
8print(new)#结果为['A', 'b', 'c']
9test=tuple(new)
10print(test)#结果为('A','b','c')python中创建元组时对其赋值的过程叫做“packing” a tuple,相反,也可以“unpacking” a tuple
1#packing a tuple
2fruits=c('apple','banana','lemon')
3print(fruits)#结果为('apple','banana','lemon')
4#unpacking a tuple,注意提供的变量数目需与元组的长度相等
5(fruit1,fruit2,fruit3)=fruits
6print(fruit1)#结果为apple
7print(fruit2)#结果为banana
8print(fruit3)#结果为lemon
9
10#如果元组有5个元素,赋值给3个变量,则需要用到*,多出的元素被合并为一个列表
11fruits=c('apple','banana','cherry','orange','lemon')
12(fruit1,fruit2,*fruit3)=fruits
13print(fruit1)#结果为apple
14print(fruit2)#结果为banana
15print(fruit3)#结果为['cherry','orange','lemon']
16(fruit1,*fruit2,fruit3)=fruits
17print(fruit1)#结果为apple
18print(fruit2)#结果为['banana','cherry','orange']
19print(fruit3)#结果为['lemon'] -
Python中的集合-Sets
python中的集合是无序的(每次访问,顺序都会改变)、没有索引的(无法通过索引访问元素)、不可改变的(这里的不可改变是指无法改变元素内容,但可以增加或删减元素)、没有重复值的、集合用{}声明
添加、删减元组元素
1#用add()添加单个元素
2test={'a','b','c'}
3test.add('d')
4print(test)#结果为{'a', 'd', 'b', 'c'}
5#用update()添加多个元素
6test={'a','b','c'}
7add1=['x','y']
8add2=('m','n')
9test.update(add1)
10print(test)#结果为{'y', 'b', 'x', 'a', 'c'}
11test.update(add2)
12print(test)#结果为{'y', 'b', 'x', 'a', 'm', 'n', 'c'}
13#用remove()或discard()移除单个元素
14test={'a','b','c','d','e'}
15test.remove('a')
16print(test)#结果为{'b', 'c', 'e', 'd'}
17test.discard('d')
18print(test)#结果为{'b', 'c', 'e'}
19#利用pop()随机删除一个元素
20test.pop()
21print(test)#结果为{'c', 'e'}
22#利用clear()清空集合
23test.clear()
24print(test)#结果为set()合并两集合,集合不允许存在重复值
1#用union()或update()对两集合取并集,并去除重复值
2set1={1,2,3,'a'}
3set2={'a','b','c'}
4set3=set1.union(set2)
5print(set3)#结果为{1, 2, 3, 'a', 'b', 'c'}
6set1.update(set2)
7print(set1)#结果为{'b', 1, 2, 3, 'c', 'a'}
8
9#用intersection_update()保留两集合的交集
10set1={'a','b','c'}
11set2={'b','d','e'}
12set1.intersection_update(set2)
13print(set1)#结果为{'b'}
14#用intersection()创建新集合,包含两集合的交集
15set1={'a','b','c'}
16set2={'b','d','e'}
17new=set1.intersection(set2)
18print(new)#结果为{'b'}
19
20#用symmetric_difference()创建新集合保留两集合中各自存在的元素
21set1={'a','b','c'}
22set2={'b','d','e'}
23new=set1.symmetric_difference_update(set2)
24print(new)#结果为{'c', 'e', 'a', 'd'}
25#用symmetric_difference_update()保留两个集合中各自存在的元素
26set1={'a','b','c'}
27set2={'b','d','e'}
28set1.symmetric_difference_update(set2)
29print(set1)#结果为{'c', 'e', 'a', 'd'}
30
31#用difference()或difference_update()取出集合1中未在集合2出现的元素
32set1={'a','b','c'}
33set2={'b','d','e'}
34set1.difference_update(set2)
35print(set1)#结果为{'a', 'c'}
36set1={'a','b','c'}
37set2={'b','d','e'}
38new=set1.difference(set2)
39print(new)#结果为{'a', 'c'}
40#注意diffenence()与difference_update()不同,difference()是返回一个新的集合,而difference_update()则是直接对set1进行升级判断集合1和集合2中是否存在相同元素
1#用isdisjoint()检验是否集合2中不存在集合1的元素
2set1={1,2,3}
3set2={'a','b','c',1}
4setA={1,2,3}
5setB={1,2,3,4,5}
6print(set1.isdisjoint(set2))#结果为False
7#用issubset()检验是否集合A中的元素完全位于集合B中
8print(setA.issubset(setB))#结果为True
9#用issuperset()检验是否集合B中的元素完全位于集合A中
10print(setA.issuperset(setB))#结果为False
原文始发于微信公众号(BioInfo):W3Schools-Python基础3
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/238188.html