一,集合 set
python中的集合和数学中的集合是一样的,用来保存不重复的元素。也就是说集合中的元素是唯一的。
二。创建集合
1。 使用{}创建
a = {1, 3, "java", 'python'}
print(a)
{1, 3, 'java', 'python'}
2。使用set()函数创建
a = set([1, 2, "java", 'python'])
print(a)
print("---------")
b = set("python")
print(b)
print('---------')
c = set((1, 2, 'java', 'python'))
print(c)
print('---------')
d = set(range(0, 10))
print(d)
{1, 2, 'java', 'python'}
---------
{'y', 'o', 't', 'n', 'h', 'p'}
---------
{1, 2, 'java', 'python'}
---------
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
注意:
1。 同一集合内不能出现可变的数据类型
a = {1, 2, [1, 2]}
print(a)
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 1, in <module>
a = {1, 2, [1, 2]}
TypeError: unhashable type: 'list'
2。如果集合中出现相同的元素那么只会保留一个
a = {1, 2, 2}
print(a)
{1, 2}
三。集合元素的访问
由于集合中的元素是无序的所以无法像访问列表那样通过下标访问。 一般的做法是通过循环访问
a = {1, 2, 2}
for key in a:
print(key)
1
2
四。集合删除
和其他类型一样可通过del关键字删除
a = {1, 2, 2}
print(a)
del a
print(a)
{1, 2}
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 4, in <module>
print(a)
NameError: name 'a' is not defined
五。add()集合中添加元素
该方法不能添加可变的数据类型。 否则会报错
a = {1, 2, 2}
print(a)
a.add("java" )
print(a)
a.add(["python", "js"])
print(a)
{1, 2}
{1, 2, 'java'}
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 5, in <module>
a.add(["python", "js"])
TypeError: unhashable type: 'list'
六。 remove()集合删除元素
该方法删除元素时。如果元素不存在则会报错
a = {1, 2, 2}
print(a)
a.remove(1)
print(a)
a.remove( "java" )
print(a)
{1, 2}
{2}
Traceback (most recent call last):
File "/Users/apple/Documents/重要文件/python3/python20.py", line 5, in <module>
a.remove( "java" )
KeyError: 'java'
七。 discard() 方法删除元素
该犯法当被删除元素不存在时不会报错
a = {1, 2, 2}
print(a)
a.discard(1)
print(a)
a.discard("java")
print(a)
{1, 2}
{2}
{2}
八。 set的交集。并集。差集
1。“&”交集。 取两个元素之间的公共元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a & b
print(c)
{1, 'java'}
2。 “|”并集。 取两个集合之间的全部元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a | b
print(c)
{1, 'c', 2000, 'java', 'js', 'python'}
3。“-” 差集。取一个集合中在另一个集合中不存在的元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a - b
print(c)
{2000, 'python'}
4 “^”对称差集。 取集合一和集合二中不属于集合一和集合二交集的元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a ^ b
print(c)
{2000, 'js', 'c', 'python'}
九。clear()清空集合中所有的元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
print(a)
a.clear()
print(a)
{'python', 1, 'java', 2000}
set()
十。difference(). a中没有二b中有的元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = b.difference(a)
print(c)
{'js', 'c'}
十一。difference_update(). 删除集合一中与集合二相同的元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
a.difference_update(b)
print(a)
{2000, 'python'}
十二。intersection()。得到集合一和集合二的交集
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a.intersection(b)
print(c)
{1, 'java'}
十三。 intersection_update()得到集合一和集合二的交集并更新集合一
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
a.intersection_update(b)
print(a)
{'java', 1}
十四。isdisjoint(). 判断集合一和集合二是否有交集。 如果有返回False。没有返回True
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a.isdisjoint(b)
print(c)
False
十五。issubset()判断集合一是不是集合二的子集。 是返回True、不是返回False
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a.issubset(b)
print(c)
False
十六。 issuperset()判断集合二是不是集合一的子集,是返回True、不是返回False
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = b.issuperset(a)
print(c)
False
十七。pop()删除元素。
a = {"java", 'python', 1, 2000}
a.pop()
print(a)
{1, 'python', 'java'}
十八。symmetric_difference()取得集合一和集合二中不同的元素
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a.symmetric_difference(b)
print(c)
{2000, 'js', 'c', 'python'}
十九。symmetric_difference_update()取出集合一和集合二中不同的元素。并更新集合
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
a.symmetric_difference_update(b)
print(a)
{'c', 'python', 2000, 'js'}
二十。union()求两个集合的并集
a = {"java", 'python', 1, 2000}
b = {"java", 'js', 'c', 1}
c = a.union(b)
print(c)
{1, 2000, 'python', 'c', 'js', 'java'}
二十一。添加元素。添加列表或集合中的元素
a = {"java", 'python', 1, 2000}
a.update([200, 3000])
print(a)
{'java', 1, 200, 2000, 'python', 3000}