IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python初学小知识(八):集合 -> 正文阅读

[Python知识库]Python初学小知识(八):集合


C语言和Python经常弄混,尤其总是忍不住给Python后面加分号……干脆给自己做个笔记省的忘了。。。(在慕课网学习的)

十二、集合

在前面,我们学习了dict,知道dict的key是不重复的,当我们往dict里添加一个相同key的value时,新的value将会覆盖旧的value。
有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。

1. 集合与列表

set和list类似,拥有一系列元素,但是set和list不一样,set里面的元素是不允许重复的,而list里面可以包含相同的元素;set与list的另一个区别是,set里面的元素是没有顺序的。

2. 创建集合

创建set的方式是使用set(),并传入一个list,list的元素将会被转换成set的元素。

>>> s = set([1, 4, 3, 2, 5])
>>> s
{1, 2, 3, 4, 5}  
#打印的顺序和原始 list 的顺序有可能是不同的,因为set内部存储的元素是无序的。

另外,set不能包含重复的元素:

>>> s = set([1, 4, 3, 2, 5, 4, 2, 3, 1])
>>> s
{1, 2, 3, 4, 5}

3. 集合的增删查

3.1 增

3.1.1 add()添加一个

>>> s = set(['Alice', 'Bob', 'Candy', 'David', 'Ellena'])
>>> s.add('Gina')
>>> s
{'Candy', 'Ellena', 'Bob', 'Alice', 'Gina', 'David'}

#如果添加一个已经存在的元素,不会报错,也不会改变什么:
>>> s.add('Alice')
>>> s
{'Candy', 'Ellena', 'Bob', 'Alice', 'Gina', 'David'}

3.1.2 update()批量添加

>>> s = set(['Alice', 'Bob'])
>>> new_s = ['Hally', 'Isen', 'Jenny', 'Karl']
>>> s.update(new_s)  #这里的new_s是列表
								      #这两行可以直接:s.update(['Hally', 'Isen', 'Jenny', 'Karl'])
>>> s
{'Karl', 'Bob', 'Alice', 'Hally', 'Isen', 'Jenny'}

3.2 删

3.2.1 删除一个元素remove()

>>> s = set(['Jenny', 'Ellena', 'Alice', 'Candy'])
>>> s.remove('Alice')
>>> s
{'Jenny', 'Candy', 'Ellena'}

#如果要删除的元素不在集合中,会报错
>>> s.remove('David')  
Traceback (most recent call last):
  File "<pyshell#356>", line 1, in <module>
    s.remove('David')
KeyError: 'David'

3.2.2 不会报错的删除方法discard()

>>> s = set(['Jenny', 'Ellena', 'Alice', 'Candy'])
>>> s.discard('Alice')
>>> s
{'Jenny', 'Candy', 'Ellena'}
>>> s.discard('David')
>>> s
{'Jenny', 'Candy', 'Ellena'}

3.2.3 清除所有元素的方法clear()

>>> s = set(['Jenny', 'Ellena', 'Alice', 'Candy'])
>>> s.clear()
>>> s
set()

3.3 查

3.3.1 读取set元素

>>> s = set(['Jenny', 'Ellena', 'Alice', 'Candy'])
>>> 'Alice' in s
True
>>> 'Bob' in s
False

3.3.2 集合的子集和超集

set提供方法判断两个set之间的关系,比如两个集合set,判断其中一个set是否为另外一个set的子集或者超集。

>>> s1 = set([1,2,3])
>>> s2 = set([1,2,3,4,5])
>>> s1.issubset(s2)  #s1是s2的子集
True
>>> s2.issuperset(s1)  #s2是s1的超集
True

3.3.3 判断集合是否重合

有时候需要判断两个集合是否有重合的地方,如果使用传统的方法,需要使用for循环一个一个的去判断,非常麻烦,set提供isdisjoint()方法,可以快速判断两个集合是否有重合,如果有重合,返回False,否则返回True。

>>> s1 = set([1,2,3,7])
>>> s2 = set([1,2,3,4,5])
>>> s1.isdisjoint(s2)
False   #重合了1,2,3,返回False
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:47:35  更:2021-10-27 12:49:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:19:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码