集合(set)是一个无序的不重复元素序列。只可以存储不可变类型数据,即可哈希的数据类型,
如:元组(tuple)、字符(str)、整型(int)、布尔型(bool)
  可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },
因为 { } 是用来创建一个空字典。

 set1 = set({1, 2, 3, 4})
set2 = {'wuhan', 'taibei', 'soul'}
print(type(set1))

  相关操作

 '''增'''
set1.add(4) # 无序插入,如果插入集合中有的元素,会去重!因为它是不重复的!
set1.add(5)
set1.update('Alpha') # 将字符串拆分后,分别无序插入集合中
print(set1) '''删'''
set1.pop() # 随机删除
set2.remove('wuhan') # 按元素删除
print(set2)
set1.clear() # 清空集合
print(set1)
del set1 # 删除集合
# print(set1) '''查'''
for i in set2: # 只能如此查询
print(i) '''交集'''
set1 = {1, 2, 3, 6, 8, 9}
set2 = {6, 8, 10, 12, 16}
set3 = set1 & set2
set4 = set1.intersection(set2)
print(set3, set4) '''反交集'''
set5 = set1 ^ set2
set6 = set1.symmetric_difference(set2)
print(set5, set6) '''并集'''
set7 = set1 | set2
set8 = set1.union(set2)
print(set7, set8) '''差集'''
set9 = set1 - set2 # set1独有的,即set2没有的
set10 = set1.difference(set2)
print(set9, set10) '''子集和超集'''
set1 = {6, 8, 10}
print('set1是不是set2的子集:{0}'.format(set1 < set2))
print('set1是不是set2的子集:{0}'.format(set1.issubset(set2)))
print('set2是不是set1的超集:{0}'.format(set2 > set1))
print('set2是不是set1的超集:{0}'.format(set2.issuperset(set1)))

  frozenset(冻结集合)可理解为只读的集合

 set0 = frozenset('abcde')  # 只能是一个可迭代的元素
set0 = frozenset([1,3,5,7,9]) # 只能是一个可迭代的元素
print(set0, type(set0))
# 只读即只能查询
for i in set0:
print(i)

 集合相关面试题:

  有列表如下:[1,22,33,22,44,55,22,22,88,22]请将该列表中重复的元素去除。

num_li = [1,22,33,22,44,55,22,22,88,22]

temp_set = set(num_li)

new_li = list(temp_set)

print(new_li) 

python基础之七:set 集合的更多相关文章

  1. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...

  2. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

  3. Python基础篇(set集合)

    Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...

  4. python基础之七种运算符

    废话不多说,上节说的是数据类型,本篇讲讲数据运算. 在算式"1+2"中,"1"和"2"被称为操作数,"+"被称为运算符 ...

  5. 3.python基础补充(集合,collection系列,深浅拷贝)

    一.集合 1.集合(set): 把不同的元素组成一起形成集合,是python基本的数据类型.集合元素(set elements):组成集合的成员 python的set和其他语言类似, 是一个无序不重复 ...

  6. Python基础数据类型之集合以及其他和深浅copy

    一.基础数据类型汇总补充 list  在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...

  7. Python基础-字符串、集合类型、判断、深拷贝与浅拷贝、文件读写

    字符串 1.定义三个变量: 2.交换两个变量值 1)引入第三个变量: 2)Python引入第三方变量: 3)不引入第三方变量: 3. isalpha 是否是汉字或字母 4.Isalnum  是否是汉字 ...

  8. Python 全栈开发二 python基础 字符串 字典 集合

    一.字符串 1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串. >>ch = "wallace" >>ch1 = 'walla ...

  9. Python基础 之 set集合 与 字符串格式化

    数据类型的回顾与总结 可变与不可变1.可变:列表,字典2.不可变:字符串,数字,元组 访问顺序:1.直接访问:数字2.顺序访问:字符串,列表,元祖3.映射:字典 存放元素个数:容器类型:列表,元祖,字 ...

随机推荐

  1. RHEL8/CentOS8的基础防火墙配置-用例

    systemctl systemctl unmask firewalld #执行命令,即可实现取消服务的锁定 systemctl mask firewalld # 下次需要锁定该服务时执行 syste ...

  2. MySQL binlog三种模式

    1.1 Row Level  行模式 日志中会记录每一行数据被修改的形式,然后在slave端再对相同的数据进行修改 优点:在row level模式下,bin-log中可以不记录执行的sql语句的上下文 ...

  3. c# 自动给版本升级,遇9变0且前面一个版本加1

    /// <summary> /// 版本辅助类 /// 创建人: /// 创建时间:2019-11-18 13:53:55 /// </summary> public clas ...

  4. go-gin-api 路由中间件 - Jaeger 链路追踪

    概述 首先同步下项目概况: 上篇文章分享了,路由中间件 - Jaeger 链路追踪(理论篇). 这篇文章咱们分享:路由中间件 - Jaeger 链路追踪(实战篇). 说实话,这篇文章确实让大家久等了, ...

  5. 记一次ssh.exec_command(cmd)执行后读取结果为空

    # 连接跳板机,执行插标签 def con_tmp_machine(mobile_phoneno, myguid): keyfile = os.path.expanduser('/Users/kusy ...

  6. JS修改URL参数,并修改前页面的地址

    function changeURLArg(url,arg,arg_val){ var pattern=arg+'=([^&]*)'; var replaceText=arg+'='+arg_ ...

  7. SSL证书格式转换

    crt格式转pem openssl x509 -in www.x.com.crt -out www.x.com.pem openssl x509 -in mycert.crt -out mycert. ...

  8. PyTorch 之 Datasets

    实现一个定制的 Dataset 类 Dataset 类是 PyTorch 图像数据集中最为重要的一个类,也是 PyTorch 中所有数据集加载类中应该继承的父类.其中,父类的两个私有成员函数必须被重载 ...

  9. vue要求更新3.0-》使用axios的时候出现错误

    要求更新 使用axios报错 - Running completion hooks...error: 'options' is defined but never used (no-unused-va ...

  10. 'while' statement cannot complete without throwing an exception

    You are probably using Android Studio or IntelliJ. If so, you can add this above your method contain ...