创建集合set
用大括号{}
或者内置函数set()
创建集合。
代码:
my_set = {"apple", "banana", "cherry"} print(my_set) # 创建一个集合,可以使用大括号或者内置函数 my_set_2 = set(["one", "two", "three"]) # 将列表转为集合,自动去重 my_set_2 = set(("one", "two", "three")) # 将元组转为集合,自动去重 print(my_set_2) my_set_3 = set("aaabbbcccdddeeeeeffff") # 将字符串转为集合,自动去重 print(my_set_3) # 小心:一个空集合不能使用{},因为这会被解释为字典,用set()代替 a = {} print(type(a)) # 此时为字典 a = set() print(type(a))
结果:
{'banana', 'apple', 'cherry'} {'three', 'one', 'two'} {'b', 'c', 'd', 'e', 'f', 'a'} <class 'dict'> <class 'set'>
增加元素
调用set.add()
函数向集合中添加元素。
代码:
my_set = set() # 用add()方法增加元素 my_set.add(42) my_set.add(True) my_set.add("Hello") # 注意:添加的元素没有顺序,添加的元素可能会在打印时不同 print(my_set) # 什么也不会发生,因为元素已经存在 my_set.add(42) print(my_set)
结果:
{True, 42, 'Hello'} {True, 42, 'Hello'}
移除元素
从集合中删除元素,如如下4种方法:
set.remove()
删除集合中的某个元素,元素不存在时抛出异常KeyError
。set.discard()
删除集合中的某个元素,元素不存在时不抛出异常。set.clear()
清空集合set.pop()
随机返回一个元素,并删除
代码:
# remove(x):移除x,如果元素不存在,则抛出KeyError异常 my_set = {"apple", "banana", "cherry"} my_set.remove("apple") print(my_set) # KeyError: # my\_set.remove("orange") # discard(x): 如果元素不存在,不会抛出异常 my_set.discard("cherry") my_set.discard("blueberry") print(my_set) # clear():移除所有元素 my_set.clear() print(my_set) # pop(): 移除并返回一个随机元素 a = {True, 2, False, "hi", "hello"} print(a.pop()) print(a)
结果:
{'banana', 'cherry'} {'banana'} set() False {True, 2, 'hi', 'hello'}
检查元素是否在
in
操作符,适合列表、字典、元组 及集合,万能的检查元素是否存在!
代码:
my_set = {"apple", "banana", "cherry"} if "apple" in my_set: print("yes")
结果:
yes
遍历集合
for
循环遍历,适合列表、字典、元组 及集合,万能遍历容器类数据结构!
代码:
# 迭代集合 # 注意:顺序不重要 my_set = {"apple", "banana", "cherry"} for i in my_set: print(i)
结果:
banana apple cherry
合并 和 交集
set_a.union(set_b)
返回集合set_a
与set_b
的并集,且不改变set_a
、set_b
set_a.intersection(set_b)
返回集合set_a
与set_b
的交集 ,且不改变set_a
、set_b
代码:
odds = {1, 3, 5, 7, 9} evens = {0, 2, 4, 6, 8} primes = {2, 3, 5, 7} # union(): 合并两个集合,不会有重复 # 注意:这不会改变两个集合 u = odds.union(evens) print(u) # intersection(): 求交集 i = odds.intersection(evens) print(i) i = odds.intersection(primes) print(i) i = evens.intersection(primes) print(i)
结果:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} set() {3, 5, 7} {2}
差集
set_a.difference(set_b)
返回集合set_a
中不在set_b
中的元素,即差集,且不改变set_a
、set_b
set_a.symmetric_difference(set_b)
返回set_
和set_b
中不同的元素
注意:
set_a.symmetric_difference(set_b)
=set_b.symmetric_difference(set_a)
想想为什么?
代码:
setA = {1, 2, 3, 4, 5, 6, 7, 8, 9} setB = {1, 2, 3, 10, 11, 12} # 差集:返回setA中不在setB中的元素 diff_set = setA.difference(setB) print(diff_set) # 反过来,返回setB中不在setA中的元素 diff_set = setB.difference(setA) print(diff_set) # symmetric\_difference():返回setA和setB中不同的元素 diff_set = setA.symmetric_difference(setB) print(diff_set) # A.symmetric\_difference(B) = B.symmetric\_difference(A) diff_set = setB.symmetric_difference(setA) print(diff_set)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典