Python之数据结构-----集合与推导式

集合

Python中有一种内置类型叫做集合(set),它与列表(List)的行为类似,唯一区别在于集合不会包含重复的值。

empty = set()
print("空集合",empty)
number = {1,2,3}
print("数字集合",number)
mix = set([1,"你好",3.14])
print("混合类型集合",mix)

执行结果:

注意:空集合不能使用{ }定义

定义集合:如果是空集合(不包含任何元素的集合),必须使用set()定义;如果包含元素,则可以使用花括号{ }定义集合,也可以使用set+列表来定义。

添加元素:add

number = {1,2,3}
print(number)
number.add(5)
print(number)
number.add(2)
print(number)

执行结果:

Python之数据结构-----集合与推导式_第1张图片

add方法添加新元素时,如果新的元素与原来的元素没有重复,则正常添加元素;否则,则不会添加新的元素,保证了元素的唯一性。

删除元素:remove

number = {1,2,3,4,5}
print(number)
number.remove(5)
print(number)
number.remove(8)
print(number)

执行结果:

Python之数据结构-----集合与推导式_第2张图片

remove不能用于不存在的元素,如果元素不存在Python解释器会输出错误信息。

Python中的集合可以看成数学意义上的无序和无重复元素的集合,并且可以支持数学意义上的集合操作。

n1={1,3,5}
n2={1,2,3,4}
print("n1",n1)
print("n2",n2)
print("交集",n1 & n2)
print("并集",n1 | n2)
print("差集",n1 - n2)
print("对称差集",n1 ^ n2)

执行结果:

Python之数据结构-----集合与推导式_第3张图片

推导式

Python支持三种推导式(解析式),分别对应表、字典和集合。

列表推导式语法:[ for语句+if语句 ]

l1=[x for x in range(5)]
print(l1)
odd=[x for x in range(10) if x % 2 != 0]
print(odd)

执行结果:Python之数据结构-----集合与推导式_第4张图片

range(start,stop[,step])函数可创建一个整数列表,一般用在for循环中。

字典推导式(和列表推导式类似):字典的元素的成对出现的,所以推导式定义的时候也是成对形成键值对。

d1={n:n**2 for n in range(5)}
print(d1)
d2={v:k for k,v in d1.items()}
print(d2)

执行结果:

items()以列表返回可遍历的(键,值)元组数组。

集合推导式:去除重复的元素,使用花括号。

s1={i**2 for i in [-1,-5,1,2,-2]}
print(s1)

 执行结果:

 

你可能感兴趣的:(python)