集合的定义

  由一个或多个确定的元素所构成的整体

可变集合

 s=set('hello')
print(s) # {'e', 'l', 'o', 'h'} s=set(['alex','alex','Lucy'])
print(s) # {'alex', 'Lucy'} s = {1,2,3,4,5,6,7}
print(s)

不可变集合

 s = {1,2,3,4,5,6,7}
print(s) # {1, 2, 3, 4, 5, 6, 7}
# 改为不可变集合
fs = frozenset(s)
print(fs) # frozenset({1, 2, 3, 4, 5, 6, 7})

集合的特性

  1、确定性(元素必须可hash)

   2、互异性(去重)

   3、无序性(集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合)

    注:集合存在的意义:去重和关系运算

去重

 p_li = [1,2,3,4,3,5]
# 去重
p_s = set(p_li)
print(p_s) # {1, 2, 3, 4, 5}

集合的关系运算

 p_s1 = {'张三','王五','李四'}
p_s2 = {'李四','王五','赵六'}
# 交集
print(p_s1.intersection(p_s2)) # {'李四', '王五'}
print(p_s1&p_s2) # {'李四', '王五'}
# 并集
print(p_s1.union(p_s2)) # {'张三', '李四', '王五', '赵六'}
print(p_s1|p_s2) # {'张三', '李四', '王五', '赵六'}
# 差集【A-交集】
print(p_s1.difference(p_s2)) # {'张三'}
print(p_s1-p_s2) # {'张三'}
# 对称差集【并集-交集】
print(p_s1.symmetric_difference(p_s2)) # {'赵六', '张三'}
print(p_s1^p_s2) # {'赵六', '张三'}
# A更新为交集
# p_s1.intersection_update(p_s2)
# A更新为差集
# p_s1.difference_update(p_s2)
# A更新为对称差集
# p_s1.symmetric_difference_update()
# print(p_s1)

集合的内置函数

常见

 s = {1,2,3,4,5,6,7}
print(s) # {1, 2, 3, 4, 5, 6, 7}
# 添加
s.add('a')
print(s) # {1, 2, 3, 4, 5, 6, 7, 'a'}
# 清空
s.clear()
print(s) # set() s = {1,2,3,4,5,6,7}
# 随机删除
s.pop()
print(s)
s = {1,2,3,4,5,6,7}
# 指定删除,若无报错
s.remove(5)
print(s)
s = {1,2,3,4,5,6,7}
# 指定删除,若无不报错
s.discard(8)
print(s)

补充

 s = {1,2}
print(s) # {1, 2}
# 单个元素的增加
s.add(3)
print(s) # {1, 2, 3}
# 多个元素的增加
s.update([3,4],[7,8])
print(s) # {1, 2, 3, 4, 7, 8}
s.update('hello')
print(s) # {1, 2, 3, 4, 'o', 7, 8, 'e', 'l', 'h'}

其他

 p_s1 = {'张三','王五','李四'}
p_s2 = {'李四','王五','赵六'}
# 判断两个集合是不是相交
print(p_s1.isdisjoint(p_s2))
# 判断集合是不是包含其他集合
print(p_s1.issuperset(p_s2))
# 判断集合是不是被其他集合包含
print(p_s2.issubset(p_s2))

Python开发——数据类型【集合】的更多相关文章

  1. python基础数据类型--集合(set)

    python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...

  2. Python开发——数据类型【字符串】

    字符串定义 字符串是一个有序的字符的集合,用于存储和表示基本的文本信息 在Python中加了引号的字符,都被认为是字符串! 单引号.双引号.多引号之间的区别? 答案:单双引号没有区别 多引号的作用? ...

  3. Python开发——数据类型【字典】

    字典的定义 # Python语言中唯一的类型映射 # 键与值之间用“:”分开 # 项与项之间用“,”分开 person = {"name":"yuan",&qu ...

  4. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  5. Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  6. python基本数据类型集合set操作

    转:https://www.cnblogs.com/tina-python/p/5468495.html 一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值 ...

  7. Python开发——数据类型【列表】

    列表的定义 中括号[]内以逗号分隔开,按照索引,存放各种数据类型,每个位置代表一个元素 list_t = ['张三','Lucy',123] print(list_t) # ['张三', 'Lucy' ...

  8. Python开发——4.集合和字符串拼接

    一.集合(set) 1.集合的特性: 不同元素组成.元素是无序排列的可hash值 2.集合转为列表 s1 = {11,"hechouzi",(11,22,33)} names = ...

  9. python基本数据类型——集合

    集合 无序可变序列,集合中元素不允许重复,即每个元素都是唯一的 集合中的元素按照升序排列 # 创建集合 >>aset = set([0,2,4,5,7,2,3,5,9,0]) >&g ...

随机推荐

  1. nginx屏蔽某段IP、某个国家的IP

    nginx中可通过写入配置文件的方法来达到一定的过滤IP作用,可使用deny来写. deny的使用方法可用于前端服务器无防护设备的时候过滤一些异常IP,过滤的client ip会被禁止再次访问,起到一 ...

  2. LOJ 3057 「HNOI2019」校园旅行——BFS+图等价转化

    题目:https://loj.ac/problem/3057 想令 b[ i ][ j ] 表示两点是否可行,从可行的点对扩展.但不知道顺序,所以写了卡时间做数次 m2 迭代的算法,就是每次遍历所有不 ...

  3. Python——列表、元祖、字典、集合的基本操作

    列表 1. 列表——增 (1)append li = ['xcsd', 'cdc', [1, 5, 2], 'eht', '辛辰'] li.append('nihao') print(li) #['x ...

  4. maven打包时报错:-source 1.5 中不支持 diamond 运算符

    报错现象: 解决方法: 在pom文件中加入下面依赖 <build> <plugins> <plugin> <groupId>org.apache.mav ...

  5. 廖雪峰Java7处理日期和时间-4最佳实践-最佳实践

    jdk提供了2套新旧的API来处理日期和时间. java.util * Date * Calendar java.time(JDK>=1.8) * Localdate * LocalTime * ...

  6. CSS之display

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 10-安装es

    1.安装jdk(jdk要求1.8.20或1.7.55以上) 2.上传es安装包 3.解压es tar -zxvf elasticsearch-2.3.1.tar.gz -C /opt/app/ 4.e ...

  8. 学习excel的使用技巧三快捷键和思路

    快捷键 CRTL+回车 是多行执行 思路 关于公式 在空白出 写= 即开始写公式 excel第一行 就是行标 比如 A1 就是excel 表格中第一个 比如来个乘法 =A1*12+b1*13 求和更简 ...

  9. <thinkphp51>如何安装cpmposer和tp51

    进入网站之后点击 进入入门指南后点击 进入安装阶段: 1.直接next 2.选择自己的PHP文件路径 3.然后下一步下一步即可. 第二部分: 下载thinkphp51 点击安装包列表 搜索:think ...

  10. ecs主机被破解后下载的执行文件的脚本

    #!/bin/bashchmod 777 xiaochattr 777 haha/etc/init.d/iptables stop;service iptables stop;SuSEfirewall ...