少说话多写代码之Python学习058——标准模块(集合)

栏目: Python · 发布时间: 6年前

内容简介:来看看集合(set)的使用。集合类set在sets模块中,Python2.3之后,集合类已经成为语言的一部分,无需再导入sets模块。先看看简单的使用,集合中重复值是被忽略的,比如这样,

来看看集合(set)的使用。集合类set在sets模块中,Python2.3之后,集合类已经成为语言的一部分,无需再导入sets模块。

先看看简单的使用,

print(set(range(10)))
输出
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

集合中重复值是被忽略的,比如这样,

single=set([1,6,7,8,6,6,6,8])
print(single)
输出
{8, 1, 6, 7}

元素的顺序,不会依照声明时的顺序,

sort = set(['陆小凤','西门吹雪','叶孤城'])
print(sort)
输出
{'叶孤城', '西门吹雪', '陆小凤'}

集合可以做一些运算,定义了集合seta和setb,做如下运算,

比如并集

seta=set([10,20,40])
setb=set([30,40,50])
setc = seta.union(setb)
print(setc)
输出
{50, 20, 40, 10, 30}

按位与,

print(seta |setb)
输出
{50, 20, 40, 10, 30}

其他一些运算,

setd =seta&setb
print(setd.issubset(seta))
输出:True

print(setd <=seta)
输出:True
print(setd.issuperset(seta))
输出:False
print(seta.intersection(setb))
输出:{40}
print(seta&setb)
输出:{40}
print(seta.difference(setb))
输出:{10, 20}
print(seta-setb)
输出:{10, 20}
print(seta.symmetric_difference(setb))
输出:{10, 50, 20, 30}
print(seta^setb)
输出:{10, 50, 20, 30}
print(seta.copy())
输出:{40, 10, 20}
print(seta.copy() is seta)
输出:False

集合是可变的,不能作为字典中的键。而集合本身只能包含不可变,所以集合不能包含其他集合,如下这样是错误的,

Traceback (most recent call last):
  File "D:/work/Python/StandardLibrary4.py", line 40, in <module>
    print(a.add(b))
TypeError: unhashable type: 'set'

工程文件下载: https://download.csdn.net/download/yysyangyangyangshan/10838713


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

国际游戏设计全教程

国际游戏设计全教程

[美]迈克尔·萨蒙德 / 张然、赵嫣 / 中国青年出版社 / 2017-2 / 108.00元

你想成为一名电子游戏设计师吗?想知道《肯塔基0号路》《到家》《枪口》等独立游戏的制作理念及过程吗?想了解《戈莫布偶大冒险》《辐射3》《战争机器》中关卡设计的奥秘吗?本书用通俗易懂的文字介绍了在游戏开发与策划过程中,需要掌握的游戏设计原理和制作的基础知识,可以作为读者从“构思一个电子游戏”到“真正完成一个电子游戏”的完备指南。 本书以系统的游戏设计流程结合大量优秀的游戏设计案例进行讲解,让读者......一起来看看 《国际游戏设计全教程》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具