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 的集合的更多相关文章

  1. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

  2. Python的集合

    1. Python的集合 1.1 集合的定义 在Python中, 集合set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.Python中的集合set类 ...

  3. Python 操作集合

    Python 操作集合 集合,set,主要用于数据的关系测试和去重处理,和列表类似,可以存储数据,列表中可以存储重复的数据,但是如果转化为集合之后,数据就会进行去重,然后保留唯一值:关系测试就是求多个 ...

  4. Python中集合set()的使用及处理

    在Python中集合(set)与字典(dict)比较相似,都具有无序以及元素不能重复的特点 1.创建set 创建set需要一个list或者tuple或者dict作为输入集合 重复的元素在set中会被自 ...

  5. Python:集合操作总结

    集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...

  6. python 的集合 set()操作

      Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素.     有以下运算:   1.创建一个set ()集合:   2.add:增加集合元素   3.clea ...

  7. python set集合(16)

    在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...

  8. python frozenset集合(17)

    在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样 ...

  9. Python数据类型--集合(set)

    Python的集合是无序.可迭代的容器对象,所有元素放在一对大括号中{},元素之间使用逗号隔开,同一集合内的元素具有唯一性,不允许重复. 集合中只能包含数字.字符串.元组等不可变类型的数据,不能包含列 ...

  10. [python]set集合学习

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

随机推荐

  1. 本地项目如何上传到github

      首先登录官网注册用户(此处不多介绍),然后需要登录github创建仓库 https://github.com/ 然后取一个自己喜欢的名字(这里我的名字是webclock),点击Create rep ...

  2. 一个小时学会jQuery(转载)

    目录 一.jQuery简介与第一个jQuery程序 1.1.jQuery简介 1.2.jQuery特点 1.3.jQuery版本 1.4.获得jQuery库 1.5.第一个jQuery程序 二.jQu ...

  3. Jquery 如何设置多个attr()属性

    Jquery 如何设置多个attr()属性?     文章来源:刘俊涛的博客 欢迎关注公众号.留言.评论,一起学习. _________________________________________ ...

  4. Pytest学习6-跳过或xfail失败的用例

    Skip跳过用例 跳过(Skip)指,你希望如果某些条件得到满足你的测试用例才执行,否则Pytest应该完全跳过运行该用例 1. 跳过测试用例的最简单方法是使用skip装饰器标记它,可以传递一个可选的 ...

  5. 后台异常 - Content is not allowed in prolog

    问题原因 解析XML报的错,XML拼的不对

  6. kmp算法散记

    1. https://blog.csdn.net/abcjennifer/article/details/5794547 #include<bits/stdc++.h> using nam ...

  7. bootstrap4的改进

  8. 通过属性选择器找元素,可以通过$(__).length是否为0来判断是否找到了元素

    通过属性选择器找元素,可以通过$("").length是否为0来判断是否找到了元素. 为0的时候表示没有找到,其余则返回找到了多少个. 不能通过$("")是否为 ...

  9. 解决linux 中文乱码

    解决办法是在文件/etc/profile末尾添加一行 echo 'export LC_ALL="en_US.UTF-8"' >> /etc/profile source ...

  10. docker dial unix /var/run/docker.sock: connect: permission denied

    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker. ...