Python学习笔记8——数据类型(下)

本文详细介绍了Python的集合和字典数据类型,包括集合的add()、discard()、remove()、pop()、intersection()、union()、difference()等方法,以及字典的定义、特点、键值对操作和转换。特别指出集合的高效查找特性,以及Python3.6以后字典的有序性。
摘要由CSDN通过智能技术生成


一、集合(set)

集合是一个 无序 、可变、不允许数据重复的容器。

1.1 定义

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={}(这样是定义一个空字典)。

v1 = []
v11 = list()

v2 = ()
v22 = tuple()

v3 = set()

v4 = {
   } # 空字典
v44 = dict()

1.2 集合独有功能

1.2.1 Python Set add()方法

描述
add() 方法用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。

语法
add()方法语法:

set.add(element)

参数

  • element – 必需,要添加的元素。

返回值
无。

代码示例

data = {
   "刘嘉玲", '关之琳', "王祖贤"}
data.add("郑裕玲") # {"刘嘉玲", '关之琳', "王祖贤","郑裕玲"}
print(data)
data = set()
data.add("周杰伦")
data.add("林俊杰")
print(data) #{"周杰伦"、"林俊杰"} 

1.2.2 Python Set discard() 方法

描述
discard() 方法用于移除指定的集合元素。

该方法不同于 remove() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

语法
discard() 方法语法:

set.discard(value)

参数

  • value – 必需,要移除的元素

返回值
无。

代码示例

data = {
   "刘嘉玲", '关之琳', "王祖贤","张曼⽟", "李若彤"}
data.discard("关之琳") 
print(data)

1.2.3 Python Set remove() 方法

描述
remove() 方法用于移除集合中的指定元素。

该方法不同于 discard() 方法,因为 remove() 方法在移除一个不存在的元素时会发生错误,而 discard() 方法不会。

语法
remove() 方法语法:

set.remove(item)

参数

  • item – 要移除的元素。

返回值
无。

代码示例

fruits = {
   "apple", "banana", "cherry"}
 
fruits.remove("banana") 
 
print(fruits) #{'cherry', 'apple'}

1.2.4 Python Set pop() 方法

描述
pop() 方法用于随机移除一个元素。

语法
pop() 方法语法:

set.pop()

参数
无。

返回值
返回移除的元素。

fruits = {
   "apple", "banana", "cherry"}
 
x = fruits.pop() # 注意这是随机移除元素
 
print(fruits) #{"apple", "cherry"}
print(x) #banana

1.2.5 Python Set intersection() 方法

描述
intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。

语法
intersection() 方法语法:

set.intersection(set1, set2 ... etc)

参数

  • set1 – 必需,要查找相同元素的集合。
  • set2 – 可选,其他要查找相同元素的集合,可以多个,多个使用逗号隔开。

返回值
返回一个新的集合。

s1 = {
   "刘能", "赵四", "⽪⻓⼭"}
s2 = {
   "刘科⻓", "冯乡⻓", "⽪⻓⼭"}

s4 = s1.intersection(s2) # 取两个集合的交集 
print(s4) # {"⽪⻓⼭"}

#使用 & 运算符更加方便
s3 = s1 & s2   			  # 取两个集合的交集
print(s3)

1.2.6 Python Set union() 方法

描述
union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

语法
union() 方法语法:

set.union(set1, set2...)

参数

  • set1 – 必需,合并的目标集合
  • set2 – 可选,其他要合并的集合,可以多个,多个使用逗号隔开。

返回值
返回一个新集合。

代码示例

s1 = {
   "刘能", "赵四", "⽪⻓⼭"}
s2 = {
   "刘科⻓", "冯乡⻓", "⽪⻓⼭"}
s4 = s1.union(s2) 		# 取两个集合的并集  {"刘能", "赵四", "⽪⻓⼭","刘科⻓", "冯乡⻓", }
print(s4)

#使用 | 运算符更便捷
s3 = s1 | s2   			# 取两个集合的并集
print(s3)

1.2.7 Python Set difference() 方法

描述
difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。

语法
difference() 方法语法:

set.difference(set1)

参数

  • set1 – 必需,用于计算差集的集合

返回值
返回一个新的集合。

代码示例

s1 = {
   "刘能", "赵四", "⽪⻓⼭"}
s2 = {
   "刘科⻓", "冯乡⻓", "⽪⻓⼭"}
s4 = s1.difference(s2) 		# 差集,s1中有且s2中没有的值 {"刘能", "赵四"}
s6 = s2.difference(s1)   	# 差集,s2中有且s1中没有的值 {"刘科⻓", "冯乡⻓"}

#使用 - 运算符更加便捷
s3 = s1 - s2   			   # 差集,s1中有且s2中没有的值
s5 = s2 - s1   			   # 差集,s2中有且s1中没有的值

print(s5,s6)

此外,同样可以使用len()函数获取集合的大小,在此不再赘述。

1.3 转换

其他类型如果想要转换为集合类型,可以通过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}
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值