python 的集合
set 的特点: 把不同的元素组合在一起,元素值必须是可哈希不可变的
set 的创建
s = set ('alex li')
print(s)
表现形式;去重
{'e', 'i', ' ', 'l', 'a', 'x'}
set集合去重
sy = ['cx','chenxi','cx']
print(sy)
print(set(sy)) ['cx', 'chenxi', 'cx']
{'chenxi', 'cx'}
set 去重并查看数据类型
sy = ['cx','chenxi','cx']
print(sy)
print(set(sy),type(set(sy))) {'i', 'a', 'e', 'x', ' ', 'l'}
['cx', 'chenxi', 'cx']
{'chenxi', 'cx'} <class 'set'>
set 把不同的元素组合到一起,但元素的值必须不能变化
li = [[1,2],3,'tyuio']
a = set(li)
print(a) Traceback (most recent call last):
File "D:/python/map.py", line 308, in <module>
a = set(li)
TypeError: unhashable type: 'list'
set集合分为可变集合和非可变集合;创建方式
s1 = set('alvin') # 可变
s2 = frozenset('yuan') #不可变
print(s1,type(s1))
print(s2,type(s2))
测试
{'i', 'v', 'l', 'a', 'n'} <class 'set'>
frozenset({'n', 'y', 'u', 'a'}) <class 'frozenset'>
集合的访问与判断集合里是否存在某元素
s1 =set('alvin')
print('a' in s1) #判断a元素是否在集合里存在;存在为Ture,不存在False
print('b' in s1)
for i in s1:
print(i)
True
False
a
l
n
i
v
集合里添加单个元素
def df(): #查看元素内容的函数
# print('a' in s1) # 判断a元素是否在集合里存在;存在为Ture,不存在False
# print('b' in s1)
print("********************************")
for i in s1:
print(i)
print('\n---------\n') a =[1,5,2,"wertayuio",6,5]
s1 =set(a)
df()
s1.add("wsd") #在元素里添加一个元素
df() False
False
********************************
1
2
wertayuio
5
6
---------
False
False
********************************
1
wertayuio
5
6
---------
更新(添加多个元素)元素
s1.update("ops2") #作为一个序列添元素,如果重复只添加一个
df()
1
2
5
6
wertayuio
---------
1
2
5
6
p
wertayuio
o
s
2
---------
更新(添加多个元素)元素
s1.update([12,'wwww']) #如果列表只更新添加两个
df() 测试
D:\pyth\python.exe D:/python/map.py
wertayuio
1
2
5
6
--------- wertayuio
1
2
5
6
12
wwww
---------
删除集合指定元素操作
s1.remove(2) #删除指定的元素操作
df() 1
2
5
6
wertayuio
--------- 1
5
6
wertayuio
---------
随机删除操作
print(s1)
s1.pop()
print(s1) 测试
{1, 2, 5, 6, 'wertayuio'}
{2, 5, 6, 'wertayuio'}
清空集合内容
print(s1)
s1.clear() #清空
print(s1) {1, 2, 'wertayuio', 5, 6}
set()
判断两个集合是否相同
s = set("chenxi")
s1 = set("chenxixi")
print(s==s1) #判断两个集合是否相等,相等为True
True
判断集合1是否被集合2 包含
print(set("qwert")<set("qwertyuiop")) #判断后者集合是否包含前者
True
集合and与or
print(set("12345") or set("567890")) #打印前面的set集合
print(set("12345") and set("567890")) # 打印后面的集合
{'2', '4', '5', '1', '3'}
{'8', '0', '5', '6', '9', '7'}
集合的交集与并集
s1 = set("123456")
s2 = set("456789")
print(s2.intersection(s1)) #取交集;两个集合共有的元素
print(s2.union(s1)) #取并集,指示取两个集合全部的元素并去重
print(s1 | s2) #求并集的另一方法
{'5', '4', '6'}
{'7', '8', '5', '3', '2', '4', '1', '9', '6'}
{'7', '8', '5', '3', '2', '4', '1', '9', '6'}
取集合的差集
s1 = set("123456")
s2 = set("456789")
print(s2.difference(s1)) #取s2里有的,s1里没有的元素
print(s1.difference(s2)) # 取s1里有的,s2里没有的元素
print(s1.symmetric_difference(s2)) #取对称差集
{'7', '8', '9'}
{'1', '3', '2'}
{'7', '1', '9', '2', '8', '3'}
python 的集合的更多相关文章
- Python 3 集合基础和概念!
Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...
- Python的集合
1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...
- Python 操作集合
Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...
- Python中集合set()的使用及处理
在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
- python 的集合 set()操作
Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素. 有以下运算: 1.创建一个set ()集合: 2.add:增加集合元素 3.clea ...
- python set集合(16)
在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...
- python frozenset集合(17)
在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...
- Python数据类型--集合(set)
Python的集合是无序.可迭代的容器对象,所有元素放在一对大括号中{},元素之间使用逗号隔开,同一集合内的元素具有唯一性,不允许重复. 集合中只能包含数字.字符串.元组等不可变类型的数据,不能包含列 ...
- [python]set集合学习
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...
随机推荐
- [CCPC2019秦皇岛] F. Forest Program
[CCPC2019秦皇岛 F] Link https://codeforces.com/gym/102361/problem/F Description 给定一个仙人掌,删去一些边可以让它变成一个森林 ...
- python3练习100题——015
原题链接:http://www.runoob.com/python/python-exercise-example15.html 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用 ...
- 怎样判断一个exe可执行程序是32位的还是64位的(转)
转载自:https://blog.csdn.net/qq_23308823/article/details/54898119 怎样判断一个exe可执行程序是32位的还是64位的
- codeforces 1284C. New Year and Permutation(组合数学)
链接:https://codeforces.com/problemset/problem/1284/C 题意:定义一个framed segment,在区间[l,r]中,max值-min值 = r - ...
- Mysql5.6基础命令
Centos7下mysql5.6数据库的操作 Mysql如何修改密码? 1.使用mysqladmin修改,这种修改方式需要知道mysql的原始密码 修改密码后我们测试下看看能不能登录成功 怎么才能不需 ...
- Vue中美元$符号的意思
vue的实例属性和方法 除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来.例如: var data = { a: 1 } var vm = n ...
- vs2015制作一个超级简单的MVC项目
使用vs2015制作一个超级简单的MVC项目 本文链接:https://blog.csdn.net/qq_40919762/article/details/100705314 直奔主题一,创建一个 ...
- AcWing 906. 区间分组
//1.将所有区间按左端点从小到大排序 //2.从前往后处理每个区间,判断能否将其放到某个现有的组中 //判断某一组的最后一个区间的右端点是否小于该区间的左端点 //如果大于或等于,就开新组,如果小于 ...
- mysql分组,然后组内排序取最新的一条
参照: https://blog.csdn.net/qq_16504067/article/details/78589232 https://www.cnblogs.com/w1441639547/p ...
- js判断有无属性及新添属性
1.Object 判断有无新属性 obj.hasOwnProperty(propertyName) //有无指定属性propertyName Object.keys(obj) ...