python全栈开发《58.什么是集合》

目录

  • 1.什么是集合

  • 2.集合与列表的区别

  • 3.集合的创建方法

  • 4.代码

1.什么是集合

它和列表一样,有很多的成员,也是一个序列/队列。

  • 1)集合(set)是一个无序的不重复元素序列。

  • 2)常用来对两个列表进行并集与差集的处理。或者给列表去重。

  • 3)集合与列表一样,支持所有不可变的数据类型作为集合的成员。

集合的样子:

7b1e23e73ed298868b547d6ab26323c6.png

2.集合与列表的区别

ffd3da89a491c15d4cdcf710ef01070a.png

3.集合的创建方法

  • 1)通过set函数来创建集合,不能使用{}来创建空集合(python会认定创建的是字典类型)。

正确的创建方式和错误的创建方式对比:

0b14b9e557db5790aa44b83499fa71ea.png

4.代码

例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'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清菡软件测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值