章节
问答
课签
笔记
评论
占位
占位

什么是set

在前面,我们学习了dict,知道dict的key是不重复的,当我们往dict里添加一个相同key的value时,新的value将会覆盖旧的value。
有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。
set和list类似,拥有一系列元素,但是set和list不一样,set里面的元素是不允许重复的,而list里面可以包含相同的元素;set与list的另一个区别是,set里面的元素是没有顺序的。
创建set的方式是使用set(),并传入一个list,list的元素将会被转换成set的元素。

s = set([1, 4, 3, 2, 5])
print(s) # ==> set([1, 2, 3, 4, 5])

需要注意的是,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。
另外,set不能包含重复的元素,我们传入重复的元素看看会发生什么。

s = set([1, 4, 3, 2, 5, 4, 2, 3, 1])
print(s) # ==> set([1, 2, 3, 4, 5])

可以看到,在传入set()的list中,包含了重复的元素,但是打印的时候,相同的元素只保留了一个,重复的元素都被去掉了,这是set的一个重要特点。

任务

请使用set表示班里面的五个同学。
'Alice', 'Bob', 'Candy', 'David', 'Ellena'

?不会了怎么办

参考答案:

names = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
name_set = set(names)
print(name_set) # ==> set(['Bob', 'Ellena', 'Alice', 'Candy', 'David'])
||
1
2
# Enter a code
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 慕村3371467
是有区别的如果你想在set里面直接输入元素,是需要添加“[]”的,因为set里面只能添加list列表元素

最新回答 / 高飞的鱼
是的,我的结果也是不同的。python3.9输出结果不太一样,估计更新了某些功能。Python 3.9.7 (v3.9.7:1016ef3790, Aug 30 2021, 16:39:15) [Clang 6.0 (clang-600.0.57)] on darwinType "help", "copyright", "credits" or "license()" for more information.>>> s = set(['Alice', 'Bob', 'Candy', '...

最赞回答 / Sapce
set无序集合是依靠某一种算法计算的存放规则,该算法在计算数值地址的结果和数值的大小可能恰好存在着某种顺序关系。建议你尝试着添加不同的元素到集合内,比如字符串,元组等

最新回答 / 慕圣6516049
set([])在你这里面是 没有元素set(b), b是一个非空数组,所以有元素打出来。如果 b=[], 那么就没区别了

最新回答 / 像一只狗
因为上面的b指向的是list,上面的print(sum)和下面就是一样的了

最赞回答 / 慕粉15235479823
你定义的set名称是大写S,打印时应该是这样的print(S)
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言