python学习记录11
(1)集合
python中的集合含义与数学中的集合一致,都是由无序的、不重复的元素组成的序列。集合与列表、字典一样,属于可变数据类型,且集合中的元素只能是不可变数据类型。
创建集合可以用两种方法,第一种是直接使用{}创建;第二种是使用内置函数set。注意,创建空集合的方法只有使用set(),而不是将{}赋给变量的方法,因为这样的方法创造的是一个空字典。空集合、空字典、空列表、空元组的布尔值均为False。
#创建集合
import random
s1 = {1,2,3,4,5,6,7}
print(s1,type(s1))
s2 = set('helloworld')
print(s2)
s3 = set([1,6,10,'hello'])
print(s3)
s4 = set(range(1,10))
print(s4)
s5 =set(random.randint(1,100) for i in range(1,5))
print(s5)
与所有序列一样,集合可以用序列的一系列操作
#集合的操作
s1 = {1,5,6,3,45,6,7,8}
print(max(s1))
print(min(s1))
print(1 in s1)
del s1
既然python中的集合与数学里的集合一致,那么它与数学里的集合一样可以用交、并、差、补的计算方法。
#集合的操作符
s1 = {1,2,3,4,5,6,7,8,9}
s2 = {2,4,6,8,10,12,14,16}
print(s1&s2)#交集
print(s1|s2)#并集
print(s1-s2)#差集
print(s1^s2)#补集
集合作为python中的可变序列,自然也有自己的操作方法。具体操作方法有:
set.add(element) #若集合中没有这个元素,则在集合中增加一个这样的元素
set.remove(element)#若集合中有这个元素,则删除这个元素
set.clear()#清空这个集合,得到一个空集
s1 ={1,2,3,4,5,6,7,8,9}
s1.add(10)
print(s1)
s1.remove(1)
print(s1)
s1.clear()
print(s1)
集合也有自己的遍历方法,集合的遍历方式有两种:for-in语句:for item in set和 使用enumerate函数:for order,item in enumerate (set),这里的前面打印出来的数字是序号不是索引
#集合的遍历
set1 = {1,2,3,4,5,6,7,8,9,10}
for i in set1:
print(i,end = ' ')
for o,i in enumerate(set1):
print(o,':',i,end=" ")
集合的生成式使用for i in range的方法,或者for i in range if的方法
#集合的生成式
set2 ={i for i in range(1,10)}
print(set2)
set3 ={i for i in range(1900,2025) if (i%4==0 and i%100 != 0)or i%400 == 0}#列出1900到2024中所有为闰年的年份
print(set3)