菜菜的Python学习日记 | 集合与字典(定义、创建、增删、运算)详解

请添加图片描述
系列索引:菜菜的Python学习日记 | Python从入门到入土详解

这一块我平时用的不是很多,既然看到了就统统记下来。

集合

一、定义

Python中的集合跟数学上的集合是一致的,不允许有重复元素,而且可以进行交集、并集、差集等运算。
在这里插入图片描述
集合(set)是一个无序的不重复元素序列。

二、创建和使用

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

可以按照下面代码所示的方式来创建和使用集合。

# 创建集合的字面量语法
set1 = {1, 2, 3, 3, 3, 2}
print(set1)
print('Length =', len(set1))
# 创建集合的构造器语法(面向对象部分会进行详细讲解)
set2 = set(range(1, 10))
set3 = set((1, 2, 3, 3, 2, 1))
print(set2, set3)
# 创建集合的推导式语法(推导式也可以用于推导集合)
set4 = {num for num in range(1, 100) if num % 3 == 0 or num % 5 == 0}
print(set4)

向集合添加元素和从集合删除元素。

set1.add(4)  #将元素 4 添加到集合 set 中,如果元素已存在,则不进行任何操作。
set1.add(5)
set2.update([11, 12])  #添加元素,且参数可以是列表,元组,字典等
set2.discard(5)   #移除集合中的元素,如果元素不存在,不会发生错误
if 4 in set2:
    set2.remove(4)  #将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
print(set1, set2)
print(set3.pop())  #随机删除集合中的一个元素
print(set3)

集合的成员、交集、并集、差集等运算。

# 集合的交集、并集、差集、对称差运算
print(set1 & set2)
# print(set1.intersection(set2))
print(set1 | set2)
# print(set1.union(set2))
print(set1 - set2)
# print(set1.difference(set2))
print(set1 ^ set2)
# print(set1.symmetric_difference(set2))
# 判断子集和超集
print(set2 <= set1)
# print(set2.issubset(set1))
print(set3 <= set1)
# print(set3.issubset(set1))
print(set1 >= set2)
# print(set1.issuperset(set2))
print(set1 >= set3)
# print(set1.issuperset(set3))

说明: Python中允许通过一些特殊的方法来为某种类型或数据结构自定义运算符,上面的代码中我们对集合进行运算的时候可以调用集合对象的方法,也可以直接使用对应的运算符,例如&运算符跟intersection方法的作用就是一样的,但是使用运算符让代码更加直观
在这里插入图片描述

字典

一、 定义

字典是另一种可变容器模型,Python中的字典跟我们生活中使用的字典是一样一样的,它可以存储任意类型对象,与列表、集合不同的是,字典的每个元素都是由一个键和一个值组成的“键值对”,键和值通过冒号分开。下面的代码演示了如何定义和使用字典。

二、创建

列举四种方法来创建字典。

# 创建字典的字面量语法
scores = {'骆昊': 95, '白元芳': 78, '狄仁杰': 82}
print(scores)
# 创建字典的构造器语法
items1 = dict(one=1, two=2, three=3, four=4)
# 通过zip函数将两个序列压成字典
items2 = dict(zip(['a', 'b', 'c'], '123'))
# 创建字典的推导式语法
items3 = {num: num ** 2 for num in range(1, 10)}
print(items1, items2, items3)

三、字典操作

# 通过键可以获取字典中对应的值
print(scores['骆昊'])
print(scores['狄仁杰'])
# 对字典中所有键值对进行遍历
for key in scores:
    print(f'{key}: {scores[key]}')
# 更新字典中的元素
scores['白元芳'] = 65
scores['诸葛王朗'] = 71
scores.update(冷面=67, 方启鹤=85)
print(scores)
if '武则天' in scores:
    print(scores['武则天'])
print(scores.get('武则天'))
# get方法也是通过键获取对应的值但是可以设置默认值
print(scores.get('武则天', 60))
# 删除字典中的元素
print(scores.popitem())
print(scores.pop('骆昊', 100))
del scores['武则天'] #删除一条
del scores #删除字典
# 清空字典
scores.clear()
print(scores)

四、字典遍历

dic1 = {
	'date':'2018.11.2',
	'name':'carlber',
	'work':"遍历",'number':3
	}
for i in dic1:   #遍历字典中的键
    print(i)

for key in dic1.keys():
    print(key)

for value in dic1.values():  #遍历字典中的值
    print(value)

for item in dic1.items():  #遍历字典中的元素
    print(item)

for i in dic1:
    print("该次循环得到的key为%s,得到的值为%s"%(i,dic1[i]))

内置函数和方法
在这里插入图片描述在这里插入图片描述

Python从入门到入土系列持续更新,欢迎点赞收藏关注

上一篇:菜菜的Python学习日记 | 列表操作(遍历、切片、排序、生成式、生成器)、有了列表为什么还要有元祖?
下一篇:菜菜的Python学习日记 | 几个比较有意思的代码(双色球机选、约瑟夫环问题、井字棋游戏)

本人水平有限,文章中不足之处欢迎下方👇评论区批评指正~

如果感觉对你有帮助,点个赞👍 支持一下吧 ~

不定期分享 有趣、有料、有营养内容,欢迎 订阅关注 🤝 我的博客 ,期待在这与你相遇 ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值