拓展
拓展
一、集合
(一)集合的定义与创建
Python中有一种内置类型叫作集合(Set),它是一个非常有用的数据结构。它与列表(List)的行为类似,唯一区别在于集合不会包含重复的值。
集合有两个重要的性质:
- 唯一性:即 集合中的元素都是唯一的,不能重复
- 无序性:即 集合中的元素是无序的
创建集合可以使用 花括号{} 或者 set();如果是空集合(不包含任何元素的集合),则必须使用set()定义
empty = set() # 注意空集合不能使用 {} 定义
print(empty)
number = {1, 2, 3}
print(number)
mix = set([1, "hello", 3.14])
print(mix)
(二)集合的增、删
-
add()
- 格式:set_name.add(element)
- 参数:set_name代表集合的名字;element代表要向其中添加的元素
- 作用:向集合中添加元素
n = {1, 2, 3} n.add(4) print(n) n.add(3) print(n)从执行结果可以发现,add()方法在添加新元素时,如果新的元素与原来的元素没有重复,则正常添加元素;如果新的元素与原集合中的元素相同,则不会添加新的元素。这样保证了集合的唯一性。
-
remove()
- 格式:set_name.remove(element)
- 参数:set_name代表集合的名字;element代表要删除的元素
- 作用:在集合中删除元素
n = {1, 2, 3} n.remove(2) print(n)
(三)集合的用法
-
Python中的集合可以看成数学意义上的无序和无重复元素的集合,并且Python自带的集合类型支持很多数学意义上的集合操作,例如:
n1 = {1, 3, 5} n2 = {2, 7, 1, 3} print("交集", n1 & n2) print("并集", n1 | n2) print("差集", n1 - n2) print("对称差集", n1 ^ n2) -
集合有时还用于列表的去重操作,例如:
ls = [1, 2, 3, 3, 3, 2, 4, 5] # 使用 set() 去除重复的数字 num = set(ls) print(num) # 再将集合转回列表 ls = list(num)
二、推导式
Pyhton支持三种推导式,分别对应列表、字典和集合。它能够以非常自然、简单的方式构建列表、字典或集合。
(一)列表推导式
列表推导式的语法:用中括号括起来,中间使用for语句,后面跟着if语句用作判断,满足条件的传到for语句前面用作构建的列表。例如:
ls1 = [x for x in range(5)]
print(ls1)
odd = [x for x in range(10) if x % 2 != 0]
print(odd)
列表推导式最擅长的方式就是对整个列表分别做相同的操作,并且返回得到一个新的列表。
(二)字典推导式
字典推导式和列表推导式类似。字典的元素是成对出现的,所以推导式定义的时候也是成对生成键值对。
d1 = {n: n**2 for n in range(5)}
print(d1)
d2 = {v : k for k,v in d1.items()}
print(d2)
(三)集合推导式
集合推导式基本上和列表推导式没什么区别,但是集合推导式会帮我们去除重复的元素,并且不适用中括号,而是使用花括号。例如:
s1 = {i**2 for i in [-1, -5, 1, 2, -2]}
print(s1)

浙公网安备 33010602011771号