一.set集合

  set集合是python的一个基本数据类型,一般不是很常用.set中的元素是不重复的.无序的.里面的元素必须是可hash的(int, str, tuple, bool)

  注意:

      set集合中的元素必须是可hash的,但是set本身是不可hash的.set是可变的

      set中的元素是不重复的且无序的

使用上面的特性,我们可以用set来去重复

给list去重复

lst = [1,1,2,3,4,5,2,3,4]
print(list(set(lst))) # 把list转换成set 再转换回list # [1, 2, 3, 4, 5]

二.集合的增删改查

  1.增加   .add() . update()

s = {"刘嘉玲", '关之琳', "王祖贤"}
s.add("郑裕玲")
print(s) s.add("郑裕玲") # 重复的内容不会被添加到set集合中
print(s) s = {"刘嘉玲", '关之琳', "王祖贤"}
s.update("麻花藤") # 迭代更新
print(s) s.update(["张曼玉", "李若彤","李若彤"])
print(s)

  2.删除  .pop()  .remove()  .clear()

s = {"刘嘉玲", '关之琳', "王祖贤","张曼玉", "李若彤"}
item = s.pop() # 随机弹出一个.
print(s)
print(item)

s.remove("关之琳") # 直接删除元素
print(s)

s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和
dict区分的.
print(s) # set()
# s.remove("马虎疼") # 不存在这个元素. 删除会报错

  3.修改

# set集合中的数据没有索引. 也没有办法去定位一个元素. 所以没有办法进行直接修改.
# 我们可以采用先删除后添加的方式来完成修改操作
s = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟", "李若彤"}
# 把刘嘉玲改成赵本山
s.remove("刘嘉玲")
s.add("赵本⼭")
print(s)

  4.查询

# set是一个可迭代对象. 所以可以进行for循环
for el in s:
  print(el)

三.其他的常用操作

  set集合本身是可以发生改变的. 是不可hash的. 我们可以使用frozenset来保存数据. frozenset是不可变的. 也就是一个可哈希的数据类型

frozenset

是不可变的, 也就是一个可哈希的数据类型

s = frozenset(["a", "b", "c", "d"])
dic = {s:''} # 可以正常使用了
print(dic) #{frozenset({'c', 'd', 'b', 'a'}): '123'}

集合中的操作

s1 = {"a", "b", "c"}
s2 = {"d", "e", "a"}

1.交集 两个集合中共有的元素

print(s1&s2)  # {'a'}
print(s1.intersection(s2)) # {'a'}

2.并集

print(s1|s2)  # {'a', 'c', 'b', 'd', 'e'}
print(s1.union(s2)) # {'a', 'c', 'b', 'd', 'e'}

3.差集 得到第一个中单独存在的

print(s1 - s2)  # {'c', 'b'}
print(s1.difference(s2)) # {'c', 'b'}

4.反交集 两个集合中单独存在的数据

print(s1 ^ s2)  #{'c', 'd', 'b', 'e'}
print(s1.symmetric_difference(s2)) # {'c', 'd', 'b', 'e'}

5.子集

print(s1 < s2)  # False  判断set1是否为set2的子集
print(s1.issubset(s2)) #False

6.超集

print(s1 > s2)  # False  判断set1是否为set2的超集
print(s1.issuperset(s2)) # False

python--基础数据类型 set集合的更多相关文章

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

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

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

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

  3. Python - 基础数据类型 set 集合

    集合的简介 集合是一个无序.不重复的序列 它的基本用法包括成员检测和消除重复元素 集合对象也支持像 联合,交集,差集,对称差分等数学运算 集合中所有的元素放在 {} 中间,并用逗号分开 集合的栗子 这 ...

  4. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

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

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

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

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

  7. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  8. Python基础篇(set集合)

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

  9. 图解python | 基础数据类型

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  10. python基本数据类型之集合

    python基本数据类型之集合 集合是一种容器,用来存放不同元素. 集合有3大特点: 集合的元素必须是不可变类型(字符串.数字.元组): 集合中的元素不能重复: 集合是无序的. 在集合中直接存入lis ...

随机推荐

  1. 关于SSE的一些资料

    之前查到的,觉得还不错,一直没时间看,放这里先存着 https://software.intel.com/en-us/articles/using-intel-streaming-simd-exten ...

  2. 「小程序JAVA实战」小程序首页视频(49)

    转自:https://idig8.com/2018/09/21/xiaochengxujavashizhanxiaochengxushouyeshipin48/ 视频显示的内容是视频的截图,用户的头像 ...

  3. ubuntu 安装google输入法

    第五步:通常情况下,IBus图标(一个小键盘)会出现在桌面右上角的任务栏中.有时候这个图标会自行消失,可使用以下命令,找回消失的IBus图标: ibus-daemon -drx   不建议用googl ...

  4. Multipart polyline to single part lines

    Breaking Up Polylines  http://forums.esri.com/Thread.asp?c=93&f=987&t=74554&mc=4#msgid19 ...

  5. java中将数字的字符串表示转化为数字

    int a = new Integer("1234").intValue() 或 int b = Integer.parseInt("1234") System ...

  6. Linux学习---linux的svn的配置与安装

    1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion   3.检查是否安装成 ...

  7. the difference between fopen&open

    [the difference between fopen&open] fopen是C标准API,open是linux系统调用,层次上fopen基于open,在其之上.fopen有缓存,ope ...

  8. Spring IOC容器启动流程源码解析(四)——初始化单实例bean阶段

    目录 1. 引言 2. 初始化bean的入口 3 尝试从当前容器及其父容器的缓存中获取bean 3.1 获取真正的beanName 3.2 尝试从当前容器的缓存中获取bean 3.3 从父容器中查找b ...

  9. $_SERVER['PHP_AUTH_USER']

    PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本.在 Apache 模块的 PHP 脚本中,可以用 header() 函数来向客户端 ...

  10. leetcode 121 股票买卖问题系列

    描述: 给一些列数字,表示每条股票的价格,如果可以买卖一次(不能同一天买和卖),求最大利益(即差最大). 其他三道问题是,如果能买卖无限次,买卖两次,买卖k次. 题一: 实质是求后面一个数减前一个数的 ...