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. 记录 shell学习过程(1) 超简单的面向过程的2个shell 分区以及创建lvm

    分区 #!/usr/bin/env bash #fdisk /dev/sdb << EOF #n # # # #+600M #w #EOF 创建lvm pvcreate /dev/sdb ...

  2. http接口性能测试工具

    一. http_load 程序非常小,解压后也不到100K.http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载. 但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一 ...

  3. Python之旅第四天(列表、元祖、字典和习题)

    第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一 ...

  4. 剑指offer 面试题 删除链表中重复的节点

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  5. hadoop中遇到的各种错误记录

    hadoop中namenode无法启动          转载链接:https://blog.csdn.net/love666666shen/article/details/74350358 使用pi ...

  6. OPC通信原理在数采中的应用

    OPC通信原理在数采中的应用 OPC是Object Linking and Embedding(OLE)for Process Control的缩写,它是微软公司的对象链接和嵌入技术在过程控制方面的应 ...

  7. util之Map

    1.定义 Map<String, Integer> map = new HashMap<String,Integer>(); 2.判断map中是否存在某个键的值: if(map ...

  8. Web API和Web Service

    首先,Web API是由Web Service演变而来,它们两者关系就是所有Web Service都是API,但并非所有API都是Web Service.其次,两者都有利于信息的传输,但Web API ...

  9. 数据结构学习笔记 <1> 线性表

     一.线性表的抽象数据类型描述 类型名:线性表(List) 数据对象集:线性表示n(>=0)个元素构成的有序序列(a1,a2,……,an) 操作集:线性表L∈List, 整数i表示位置,元素X∈ ...

  10. 初学Java时使用记事本开发出现的中文乱码问题

    如果是使用微软记事本,那就会麻烦一点,将后缀改为.txt,用记事本打开,左上方:文件→另存为→弹出的窗口的下方会出现使用的编码形式,将编码形式修改为ANSI编码,点击保存→确定替换即可,修改后将后缀改 ...