一.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. leetcode654

    class Solution { public: TreeNode* constructMaximumBinaryTree(vector<int>& nums) { ) retur ...

  2. [jOOQ中文] 七个步骤快速入门

    https://segmentfault.com/a/1190000010415384 关于jOOQ jOOQ: The easiest way to write SQL in Java jOOQ是一 ...

  3. 提交iframe页面中的表单

    function getIframeDoc(id){             var doc;            if (document.all){//IE                 do ...

  4. nginx部署(普通用户)

    1. Install Nginx software prerequisites : $ sudo yum install pcre pcre-devel openssl-devel perl gcc ...

  5. SSD

    https://blog.csdn.net/WZZ18191171661/article/details/79444217 论文题目:SSD: Single Shot MultiBox Detecto ...

  6. Element DatePicker日期范围选择

    前7天后7天 <el-date-picker v-model="value1" type="date" :picker-options="pic ...

  7. [Selenium] 在Grid模式下打印出当前Case是在哪台Node上运行

    AAAbstractFlow() public void getComputerNameOfNode(WebDriver driver){ String CIHub = Environment.get ...

  8. 使用delphi 开发多层应用(二十一)使用XE5 RESTClient 直接访问kbmmw 数据库

    delphi XE5 出来了,增加了android 的开发支持,另外增加了一个RESTClient 来支持访问REST 服务器. 这个功能非常强大,可以直接使用非常多的REST 服务器.同时也可以支持 ...

  9. Android Studio真机测试失败-----''No target device found"

    手机成功连接电脑,并且手机已经设置了开发者模式,但是启动真机还是失败,最后发现居然自己没有配置android sdk的环境变量,配置之后 如果还是不能启动,点击android studio上的tool ...

  10. 【转】简说GNU, GCC and MinGW (Lu Hongling)

    原地址:https://my.oschina.net/u/588967/blog/73478 GNU, GCC, MinGW是开源社区常常要遇到的概念. 网上一般的解释比较繁琐, 让人如坠云雾. 本文 ...