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. VS 2017 mscorlib.dll 加载元数据时发生严重错误,需要终止调试

    VS 2017 mscorlib.dll 加载元数据时发生严重错误,需要终止调试 C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0. ...

  2. 怎么解析后台返回数据中\r\n换行

      给div添加css样式, white-space: pre-wrap; 即可   文章来源:刘俊涛的博客 欢迎关注公众号.留言.评论,一起学习. _________________________ ...

  3. git 解决每次更新代码都要输入用户名密码

    git config --global credential.helper store git pull /git push (第一次输入,后续就不用再次数据)

  4. wcf接口输出为json格式

    接口定义: [OperationContract] [WebInvoke(UriTemplate = "AddTask?taskId={taskId}&processGuid={pr ...

  5. 中国城市区号脚本-mysql

    中国城市区号 300个. SET NAMES utf8mb4; ; DROP TABLE IF EXISTS `citycode`; CREATE TABLE `citycode` ( `codeId ...

  6. maven报错Non-resolvable parent POM---pom找不到parent

    没有配置relativePath属性,说明运行的时候使用的是默认的,所以它会在默认的pom父类中查找,而不会到我自己创建的里面进行寻找 参考链接:https://blog.csdn.net/qq_37 ...

  7. 解决jmeter 24h长时间压测-o生成报告文件达到几个g以及以上的问题

    问题描述:jmeter执行稳定性测试时,因时间过长,导致jtl文件过大,生成html报告过程报内存溢出错误(增加内存配置也不能解决) 使用 jmeter -n -t    test.jmx   -l  ...

  8. codeforces 1283E New Year Parties (贪心)

    链接:https://codeforces.com/contest/1283/problem/E 题意: 有n个人住在一些房子里,有的人住在同一个房子里.每个人可以选择搬去他的房子左边那个房子或者右边 ...

  9. Python—网络通信编程之tcp非阻塞通信(socketserver)

    服务端代码 import socketserver # 定义一个类 class MyServer(socketserver.BaseRequestHandler): # 如果handle方法出现报错, ...

  10. H5 App设计者需要注意的问题

    我们通常在做H5 APP设计的过程中,遇到很多看似很小,且很容易被忽略的问题,正是这些小问题,一次次的撩拨用户的耐心,让用户对你的APP心生怨念.现在WeX5君呕血为大家整理出H5 APP设计的21条 ...