python的集合是无序的,并且是独一无二的存在,它是不存在通过索引来访问集合的.集合可以进行更新和去除,还拥有属于自己的推导式,集合还可以用于去重复.
1.关于什么是集合呢?以及怎么去创建一个集合?
>>> type({"one":"ls"})
<class 'dict'>
>>> type({"one"})
<class 'set'>
>>> a = set("python")
>>> a
{'t', 'o', 'h', 'y', 'n', 'p'}
>>> for each in a:
print(each)
t
o
h
y
n
p
>>> a[3]
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
a[3]
TypeError: 'set' object is not subscriptable
2.集合中的in和not in 的使用,判断是否包含在在集合之中
>>> "o" in a
True
>>> "l" in a
False
3.集合也是可以进行浅拷贝的
>>> s = [1,2,3,1,2,5,43,2]
>>> len(s) == len(set(s))
False
>>> e = s.copy()
>>> e
[1, 2, 3, 1, 2, 5, 43, 2]
4.增加和删除清空集合
>>> s = set("linux")
>>> s
{'x', 'l', 'u', 'i', 'n'}
>>> s.add("33")
>>> s
{'x', 'l', 'u', 'i', '33', 'n'}
>>> s.remove("u")
>>> s
{'x', 'l', 'i', '33', 'n'}
>>> s.discard("d")
>>> s.pop()
'x'
>>> s.clear()
>>> s
set()
5.如何创建不可变的集合
>>> t = frozenset("python")
>>> t
frozenset({'t', 'o', 'h', 'y', 'n', 'p'})
6.关于集合的运算符,包含-,|,&,^
>>> q = set("abcd")
>>> f = set("aefg")
>>> q - f
{'c', 'd', 'b'}
>>> q | f
{'a', 'c', 'd', 'e', 'g', 'f', 'b'}
>>> q & f
{'a'}
>>> q ^ f
{'c', 'd', 'e', 'g', 'f', 'b'}
7.可哈希和不可哈希 解析一下:可哈希就是可哈希的数据类型,即是不可变的数据结果,比如字符串str,元组tuple,对象objec. 不可哈希就是可以发生变化的数据结果,比如字典dict,列表list,集合set.
>>> hash(1)
1
>>> hash([1])
Traceback (most recent call last):
File "<pyshell#157>", line 1, in <module>
hash([1])
TypeError: unhashable type: 'list'
>>> hash({"1":"2"})
Traceback (most recent call last):
File "<pyshell#158>", line 1, in <module>
hash({"1":"2"})
TypeError: unhashable type: 'dict'
>>> hash("python")
754178345330532935
|