python--集合-set

摘要:
集合中的每个数据都成为一个元素4455#集合的定义66s=set()77print(type(s))88print(s)991010#此时,大括号中必须有一个值。6} 1212print(type(s))1313print(s)14141515#如果仅使用大括号来定义,则定义为字典类型1616d={}1717print(type(d))1818print(d)191920202121:
 1  1 # 集合-set
 2  2 #     集合是高中的要给概念
 3  3 #     一堆确定的无序的唯一的数据, 集合中的每一个数据成为一个元素
 4  4 
 5  5 # 集合的定义
 6  6 s = set()
 7  7 print(type(s))
 8  8 print(s)
 9  9 
10 10 # 此时大括号中一定要有值, 否则定义出的是要给dict
11 11 s = {1, 2, 3, 4, 5, 6}
12 12 print(type(s))
13 13 print(s)
14 14 
15 15 # 如果只是用大括号定义,则定义的是要给dict类型
16 16 d = {}
17 17 print(type(d))
18 18 print(d)
19 19 
20 20 
21 21 :::
22 22 <class 'set'>
23 23 set()
24 24 <class 'set'>
25 25 {1, 2, 3, 4, 5, 6}
26 26 <class 'dict'>
27 27 {}
  1 # 集合的特征
  2 #     集合内数据无序, 即无法使用索引和分片
  3 #     集合内部数据元素具有唯一性, 可以用来排斥重复数据
  4 #     集合内数据, str, int, float, tuple, 集合等, 即内部只能放置可哈希数据
  5 
  6 # 集合序列操作
  7 # 成员检查
  8 # in, not in
  9 s = {4, 5, "i", "love", "xj"}
 10 print(s)
 11 if "love" in s:
 12     print("爱呀")
 13 if "ni" not in s:
 14     print("挨个锤子")
 15 
 16 # 集合遍历操作
 17 # for 循环
 18 s = {4, 5, "i", "love", "xj"}
 19 print(s)
 20 for i in s:
 21     print(type(i), end=" ")
 22 print()
 23 # 带有元组的集合遍历
 24 s = {(1, 2, 3), ("i", "love", "xj"), (4, 5, 6)}
 25 print(s)
 26 for k, m, n in s:
 27     print(k, "--", m, "--", n)
 28 
 29 for k in s:
 30     print(k)
 31 
 32 
 33 # 集合的内涵
 34 # 以下集合会在初始化后自动过滤重复元素
 35 s = {23, 223, 545, 3, 1, 2, 3, 4, 3, 2, 3, 1, 2, 4, 3}
 36 print(s)
 37 
 38 # 普通集合内涵
 39 ss = {i for i in s}
 40 print(ss)
 41 
 42 # 带条件的集合内涵
 43 # 保留偶数
 44 ss = {i for i in s if i % 2 == 0}
 45 print(ss)
 46 
 47 
 48 # 多循环的集合内涵
 49 s1 = {1, 2, 3, 4}
 50 s2 = {"i", "love", "xj"}
 51 
 52 s = {m*n for m in s1 for n in s2 if m == 3}
 53 print(s)
 54 
 55 
 56 # 集合函数/关于集合的函数
 57 # len, max, min, 跟其他基本一致
 58 s = {43, 23, 56, 223, 4, 2, 1222, 4, 323, 1}
 59 print(len(s))
 60 print(max(s))
 61 print(min(s))
 62 
 63 # set:生成一个集合
 64 list1 = [1, 2, 3, 4, 3, 23, 1, 2, 3, 4]
 65 s = set(list1)
 66 print(s)
 67 
 68 # add:向集合那内添加元素
 69 s = {1, 2, 3}
 70 s.add(334)
 71 print(s)
 72 
 73 # clear
 74 s = {1, 2, 3, 4, 5}
 75 print(id(s))
 76 s.clear()
 77 print(id(s))
 78 # 结果表明clear函数是原地清空数据
 79 
 80 # copy:拷贝
 81 # remove:移除指定的值
 82 
 83 
 84 :::
 85 {4, 5, 'i', 'love', 'xj'}
 86 爱呀
 87 挨个锤子
 88 {4, 5, 'i', 'love', 'xj'}
 89 <class 'int'> <class 'int'> <class 'str'> <class 'str'> <class 'str'> 
 90 {('i', 'love', 'xj'), (4, 5, 6), (1, 2, 3)}
 91 i -- love -- xj
 92 4 -- 5 -- 6
 93 1 -- 2 -- 3
 94 ('i', 'love', 'xj')
 95 (4, 5, 6)
 96 (1, 2, 3)
 97 {545, 1, 3, 2, 4, 23, 223}
 98 {545, 2, 3, 4, 1, 23, 223}
 99 {2, 4}
100 {'xjxjxj', 'lovelovelove', 'iii'}
101 9
102 1222
103 1
104 {1, 2, 3, 4, 23}
105 {1, 2, 3, 334}
106 1648740500648
107 1648740500648
 1 接上面内容
 2 # copy:拷贝
 3 # remove:移除指定的值
 4 s = {1, 2, 3, 4, 5}
 5 s.remove(4)
 6 print(s)
 7 s.discard(1)
 8 print(s)
 9 print("*" * 20)
10 s.discard(10)
11 print(s)
12 # s.remove(10)  # 为啥remove不存在的之会报keyerror
13 print(s)
14 
15 
16 # pop随机移除一个元素
17 s = {3, 2, 1, 5, 6, 4, 7}
18 d = s.pop()
19 print(d)
20 print(s)
21 d = s.pop()
22 print(d)
23 print(s)
24 
25 thisset = set(("Google", "Runoob", "Taobao", "Facebook"))
26 print(thisset)
27 pop_data = thisset.pop()
28 print(pop_data)
29 print(thisset)
30 pop_data = thisset.pop()
31 print(pop_data)
32 print(thisset)
33 
34 
35 :::
36 {1, 2, 3, 5}
37 {2, 3, 5}
38 ********************
39 {2, 3, 5}
40 {2, 3, 5}
41 1
42 {2, 3, 4, 5, 6, 7}
43 2
44 {3, 4, 5, 6, 7}
45 {'Google', 'Facebook', 'Runoob', 'Taobao'}
46 Google
47 {'Facebook', 'Runoob', 'Taobao'}
48 Facebook
49 {'Runoob', 'Taobao'}
# 集合函数
# intersection :交集
# difference :差集
# union :并集
# issubset :检查一个集合是否为另一个子集
# issuperset :检查一个集合是偶为另一个超集

s1 = {1, 2, 3, 4, 5, 6}
s2 = {5, 6, 7, 8, 9}
s_1 = s1.intersection(s2)
print(s_1)

s_2 = s1.difference(s2)
print(s_2)
s_3 = s1.issubset(s2)
print(s_3)

# frozen:冰冻集合
#     冰冻集合就是不可以进行任何修改的集合
#     frozenset是一种特殊集合

# 创建
s = frozenset()
print(type(s))
print(s)


:::
{5, 6}
{1, 2, 3, 4}
False
<class 'frozenset'>
frozenset()

免责声明:文章转载自《python--集合-set》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇xmind常用快捷键EXCEL 如何实现下拉填充公式,保持公式部分内容不变,使用绝对引用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MyBatis/Ibatis中#和$的区别

MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:orde...

vue 之 ESLint学习(格式化操作)

  在vscode 的右下角 有一个eslint 可以控制 在vscode保存时对代码格式化存在的因素: 第一个因素:存在vscode插件的原因 第二个因素: 查看代码是否符合standar规范: https://standardjs.com/rules-zhcn.html 查看具体细则:https://cn.eslint.org/docs/rules/...

Vue结合vue-print-nb实现打印功能

安装 npm install vue-print-nb --save main.js中全局引入 import Print from 'vue-print-nb' Vue.use(Print); 页面中使用 3.1 使用ref <div > <p>打印内容</p> &...

Extjs4——表单与输入控件

1.表单的简单形式: var form = new Ext.form.FormPanel({ title: 'form', defaultType: 'textfield', buttonAlign: 'center', frame: true, 220,...

数据可视化基础专题(44):NUMPY基础(9)数组操作(1)修改数组形状/翻转数组

1 修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组 ravel 返回展开数组 numpy.reshape numpy.reshape 函数可以在不改变数据的条件下修改形状,格式如下: numpy.reshape(a...

Django学习系列之django restframework

曾几何时,Ajax已经统治了Web开发中的客户端,而REST成为web世界中最流行的架构风格(architecture style)。所以我们的选择变得很简单:前端ajax访问后端的RESTful API对资源进行操作Django中有一些可选的REST framework,比如django-piston,django-tasypie。 但是我和google...