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. 【翻译】浅析为何使用融合CDN是大趋势

    使用传统CDN的用户遇到的新问题 随着云计算时代的快速发展,尤其是流媒体大视频时代的到来,用户在是使用过往CDN节点资源调配将面临很多问题: 问题1: 流媒体时代不局限于静态内容分发,直播点播等视频服 ...

  2. java异常处理课后作

    1.动手动脑 源码 import javax.swing.*; class AboutException {   public static void main(String[] a)    {    ...

  3. jquery-validation.js验证插件使用详解

    jquery-validation 使用 一.用前必备 官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: ...

  4. python3练习100题——025

    原题链接:http://www.runoob.com/python/python-exercise-example25.html 题目:求1+2!+3!+...+20!的和. 我的代码: s =[] ...

  5. C#画图超出屏幕的部分无法显示的解决方法

    C#画图超出屏幕的部分无法显示,通过AutoScrollMinSize属性及相关方法解决问题. 可以实现 到 的转变. 代码如下: using System.Drawing; using System ...

  6. QT离线安装包

    各个版本下载链接http://mirrors.ustc.edu.cn/qtproject/archive/qt http://www.qtcn.org/bbs/i.php

  7. 百度地图使用http ,https

    通过判断http或https if($_SERVER['REQUEST_SCHEME']=='http'){ return true; }else{ return false; } https网站使用 ...

  8. 用控制台编译和运行,输出HelloWorld

    HelloWorld 建立一个Java文件,文件后缀为.java(Hello.java) public class Hello{     public static void main(String[ ...

  9. LTE引理——解决数论竞赛题的利器

    LTE (Lifting The Exponent Lemma)引理是一个解指数型不定方程的强力工具.它在Olympiad folklore非常知名,虽然它的起源已经无从查找了.它和Hensel’s ...

  10. HBase 中 Memstore-Local Allocation Buffer

    在0.90 版本后的 HBase,引入了一个高级机制用于缓解堆内存碎片的问题.此内存碎片问题的产生的主要原因是由于 memstore 上的扰动(频繁的分配与释放内存空间)导致.对应解决此问题的机制为M ...