鱼C论坛

 找回密码
 立即注册
查看: 2616|回复: 0

[技术交流] python 入门 L27 集合

[复制链接]
发表于 2017-7-11 04:04:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
集合的作用是:唯一
>>> num1={1,2,3}
>>> type(num1)
<class 'set'>
当使用花括号但没有显示字典类型的数据特征时为集合类型
>>> num2={1,2,3,2,1,3}
>>> num2
{1, 2, 3}
集合会自动剔除重复的内容
集合是无序的,不能通过索引得到某个元素
num2[2]
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    num2[2]
TypeError: 'set' object does not support indexing
创建一个集合:
1 直接用花括号把一堆元素括起来
2 使用set()工厂函数
>>> set1=set([1,2,3,1,2,3,4,5,6])
>>> set1
{1, 2, 3, 4, 5, 6}
传入的参数可以是列表或元组
课堂搞搞看
要求:去掉列表中重复的元素
num1=[1,2,3,5,4,5,2,4,0]
temp=[]
for each in num1:
        if each not in temp:
                temp.append(each)
temp
[1, 2, 3, 5, 4, 0]

>>> num1=[1,2,3,5,4,5,2,4,0]
>>> num1=list(set(num1))
>>> num1
[0, 1, 2, 3, 4, 5]
Set()得到一个无序的集合
当数据的顺序为一个关注点时,注意set的使用造成的影响
如何访问集合中的值
1 可以使用for把集合中的数据一个个读取出来
2 可以通过in 和 not in 判断一个元素是否在集合中已经存在
内置方法:



不可变集合:frozen
希望数据有稳定性
frozenset()
num3=frozenset({1,2,3,4,5})创建的集合不可改变也就没有添加和删除等内置方法
>>> num3.add(0)
Traceback (most recent call last):
  File "<pyshell#81>", line 1, in <module>
    num3.add(0)
AttributeError: 'frozenset' object has no attribute 'add'

评分

参与人数 2荣誉 +2 鱼币 +3 收起 理由
康小泡 + 1
小甲鱼 + 2 + 2 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表