它和列表一样,有很多的成员,也是一个序列/队列。
集合的样子:
正确的创建方式和错误的创建方式对比:
例1:
为什么在set()里面可以传一个列表?其实传的列表,只是将列表中的成员放到了集合中。并不是真正的把一个列表放进去。
比如b变量,实际上是把列表中的3个成员放了进去。而3个成员是3个字符串,是不可变的类型。
# coding:utf-8
a = set()
print(a)
print(type(a))
b = set(['python','django','flask'])
print(b)
c = {[1,2,3]}
print(c)
运行结果:不支持所有可变的数据类型作为集合的成员。
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/python_set/bin/python /Users/llq/PycharmProjects/pythonlearn/python_set/set_init.py
set()
<class 'set'>
{'django', 'python', 'flask'}
Traceback (most recent call last):
File "/Users/llq/PycharmProjects/pythonlearn/python_set/set_init.py", line 10, in <module>
c = {[1,2,3]}
TypeError: unhashable type: 'list'
进程已结束,退出代码为 1
例2:支持所有不可变的数据类型作为集合的成员。
# coding:utf-8
a = set()
print(a)
print(type(a))
b = set(['python','django','flask'])
print(b)
c = {(1,2,3),'123',1}
print(c)
运行结果:
/Users/llq/PycharmProjects/pythonlearn/pythonlearn/python_set/bin/python /Users/llq/PycharmProjects/pythonlearn/python_set/set_init.py
set()
<class 'set'>
{'flask', 'python', 'django'}
{1, (1, 2, 3), '123'}
进程已结束,退出代码为 0
例3:如果希望通过{}的形式定义一个空集合,是不可以的。
d = {}
print(d,type(d))
运行结果:
{} <class 'dict'>
例4:集合去掉了重复的内容。
a_list = ['python','django','python','flask']
b_set = set(a_list)
print(b_set)
运行结果:
{'django', 'python', 'flask'}