做网站打广告,wordpress文章添加回目录,免费网站模板建设,怎么做产品网站常见的数据类型#xff1a;
int#xff0c;整数类型#xff08;整形#xff09;bool#xff0c;布尔类型str#xff0c;字符串类型list#xff0c;列表类型tuple#xff0c;元组类型dict#xff0c;字典类型#xff0c;一个容器且元素必须是键值对。set#xff0c;…常见的数据类型
int整数类型整形bool布尔类型str字符串类型list列表类型tuple元组类型dict字典类型一个容器且元素必须是键值对。set集合类型一个不允许重复重复 可变类型元素可哈希。float浮点类型浮点型常见的小数
本节介绍集合
定义
集合set是一个 无序 、可变、不允许数据重复的容器。
集合中的元素不会重复并且可以进行交集、并集、差集等常见的集合操作。
可以使用大括号 { } 创建集合元素之间用逗号 , 分隔 或者也可以使用 set() 函数创建集合。
v1 { 11, 22, 33, alex } 无序无法通过索引取值。 可变可以添加和删除元素。 v1 {11,22,33,44}
v1.add(55)
print(v1) # {11,22,33,44,55} 不允许数据重复。 v1 {11,22,33,44}
v1.add(22)
print(v1) # {11,22,33,44}
注意定义空集合时只能使用v set()不能使用 v{}这样是定义一个空字典。
添加元素
data {a, b, c}
data.add(d)
print(data)
还有一个方法也可以添加元素且参数可以是列表元组字典等语法格式如下
s.update( x )
x 可以有多个用逗号分开。 thisset set((Google, Runoob, Taobao))thisset.update({1,3})print(thisset)
{1, 3, Google, Taobao, Runoob}thisset.update([1,4],[5,6]) print(thisset)
{1, 3, 4, 5, 6, Google, Taobao, Runoob}集合的元素只能是 int、bool、str、tuple 。
删除、移除元素
移除集合中的元素且如果元素不存在不会发生错误
data {a, b, c}
data.discard(a)
print(data)
还可以使用remove( x )
将元素 x 从集合 s 中移除如果元素不存在则会发生错误。 thisset set((Google, Runoob, Taobao))thisset.remove(Taobao)print(thisset)
{Google, Runoob}thisset.remove(Facebook) # 不存在会发生错误
Traceback (most recent call last):File stdin, line 1, in module
KeyError: Facebook我们也可以设置随机删除集合中的一个元素语法格式如下
s.pop()
thisset set((Google, Runoob, Taobao, Facebook))
x thisset.pop()print(x)
多次执行测试结果都不一样。
set 集合的 pop 方法会对集合进行无序的排列然后将这个无序排列集合的左面第一个元素进行删除。
长度
v {刘能, 赵四, 尼古拉斯}
data len(v)
print(data)
清空 thisset set((Google, Runoob, Taobao))thisset.clear()print(thisset)
set()
判断元素是否在集合中存在
判断元素 x 是否在集合 s 中存在返回 True不存在返回 False。 thisset set((Google, Runoob, Taobao))Runoob in thisset
TrueFacebook in thisset
Falsefor循环
v {刘能, 赵四, 尼古拉斯}
for item in v:print(item) 交集并减、、| 减计算差集 s1 {刘能, 赵四, ⽪⻓⼭}
s2 {刘科⻓, 冯乡⻓, ⽪⻓⼭}s3 s1 - s2
s4 s2 - s1
print(s3)
print(s4) 计算交集 s1 {刘能, 赵四, ⽪⻓⼭}
s2 {刘科⻓, 冯乡⻓, ⽪⻓⼭}
s3 s1 s2
print(s3) |计算并集 s1 {刘能, 赵四, ⽪⻓⼭}
s2 {刘科⻓, 冯乡⻓, ⽪⻓⼭}
s3 s1 | s2
print(s3)
转换
其他类型如果想要转换为集合类型可以通过set进行转换并且如果数据有重复自动剔除。
提示int/list/tuple/dict都可以转换为集合。
v1 武沛齐
v2 set(v1)
print(v2) # {武,沛,齐}
v1 [11,22,33,11,3,99,22]
v2 set(v1)
print(v2) # {11,22,33,3,99}
v1 (11,22,3,11)
v2 set(v1)
print(v2) # {11,22,3}
提示这其实也是去重的一个手段。
data {11,22,33,3,99}v1 list(data) # [11,22,33,3,99]v2 tuple(data) # (11,22,33,3,99)
元素必须可哈希
因存储原理集合的元素必须是可哈希的值即内部通过通过哈希函数把值转换成一个数字
目前可哈希的数据类型int、bool、str、tuple而list、set是不可哈希的。
对比和嵌套
类型是否可变是否有序元素要求是否可哈希转换定义空list是是无否list(其他)v[]或vlist()tuple否是无是tuple(其他)v()或vtuple()set是否可哈希否set(其他)vset()
data_list [alex,11,(11, 22, 33, {alex, eric}, 22),[11, 22, 33, 22],{11, 22, (True, [中国, 北京], 沙河), 33}
]
注意由于True和False本质上存储的是 1 和 0 而集合又不允许重复所以在整数 0、1和False、True出现在集合中会有如下现象
v1 {True, 1}
print(v1) # {True}v2 {1, True}
print(v2) # {1}v3 {0, False}
print(v3) # {0}v4 {False, 0}
print(v4) # {False} 集合内置方法完整列表 方法 描述 add() 为集合添加元素 clear() 移除集合中的所有元素 copy() 拷贝一个集合 difference() 返回多个集合的差集 difference_update() 移除集合中的元素该元素在指定的集合也存在。 discard() 删除集合中指定的元素 intersection() 返回集合的交集 intersection_update() 返回集合的交集。 isdisjoint() 判断两个集合是否包含相同的元素如果没有返回 True否则返回 False。 issubset() 判断指定集合是否为该方法参数集合的子集。 issuperset() 判断该方法的参数集合是否为指定集合的子集 pop() 随机移除元素 remove() 移除指定元素 symmetric_difference() 返回两个集合中不重复的元素集合。 symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素并将另外一个指定集合中不同的元素插入到当前集合中。 union() 返回两个集合的并集 update() 给集合添加元素 len() 计算集合元素个数