[Python教学] Dictionary 字典 和 Set 集合

Dictionary 字典 和 Set 集合

Dictionary 字典

http://img2.58codes.com/2024/200726513wMpc9zsjT.png

字典(Dictionary)是 Python 中一个常用的资料结构,用于储存一组键值对(Key-Value pairs)。每个键对应到一个值,可以根据键来快速存取对应的值,它是一种无序的键值对集合,用于存储可变的、可索引的资料。字典以大括号 {} 表示,每个键值对之间使用冒号 : 分隔。以下是字典的基本用法:

字典的特点:

无序性: 字典中的键值对是无序的,无法通过索引来访问元素。可变性: 字典的内容可以修改,包括添加新的键值对、修改已有的值,以及删除键值对。唯一键: 字典中的键是唯一的,不可重複。任意类型: 字典的键和值可以是任意的 Python 物件,可以是数字、字串、元组等。

创建字典

使用 {} 大括号创建字典,每个键值对使用冒号 : 分隔,并且键值对之间使用逗号 , 分隔。

# 创建一个字典student = {    "name": "Alice",    "age": 18,    "gender": "female"}

存取字典中的值

可以使用键来存取字典中的值。

# 存取字典中的值print(student["name"])    # 输出:Aliceprint(student["age"])     # 输出:18print(student["gender"])  # 输出:female

修改字典中的值

可以根据键来修改字典中的值。

# 修改字典中的值student["age"] = 19print(student["age"])  # 输出:19

新增键值对

可以使用键来新增键值对。

# 新增键值对student["city"] = "New York"print(student)# 输出:{'name': 'Alice', 'age': 19, 'gender': 'female', 'city': 'New York'}

删除键值对

可以使用 del 关键字来删除字典中的键值对。

# 删除键值对del student["gender"]print(student)# 输出:{'name': 'Alice', 'age': 19, 'city': 'New York'}

检查键是否存在

可以使用 in 关键字来检查特定的键是否存在于字典中。

# 检查键是否存在if "age" in student:    print("age 键存在")else:    print("age 键不存在")

字典是一个非常有用的资料结构,能够帮助你组织和存储各种资料,并且支援快速的存取和修改操作。

在 Python 中,你可以使用迴圈来轮询字典中的键和值。有几种方式可以实现这个轮询的过程,让我们来看看几个例子:

轮询字典的键

你可以使用 for 迴圈来轮询字典的键。

student = {    "name": "Alice",    "age": 18,    "city": "New York"}for key in student:    print(key)# 输出:name# 输出:age# 输出:city

轮询字典的值

你可以使用 .values() 方法来轮询字典的值。

for value in student.values():    print(value)# 输出:Alice# 输出:18# 输出:New York

轮询字典的键值对

你可以使用 .items() 方法来轮询字典的键值对,并同时取得键和值。

for key, value in student.items():    print(f"{key}: {value}")# 输出:name: Alice# 输出:age: 18# 输出:city: New York

这些方法可以帮助你在迴圈中有效地轮询字典的内容,并进行相应的操作。无论是轮询键、值,还是键值对,都能够很方便地进行。

常用方法

方法说明範例len(dictionary)返回字典中键值对的数量。len(my_dict)dictionary[key]通过键取得对应的值。value = my_dict['key']dictionary[key] = value通过键设定新的键值对。my_dict['new_key'] = 'new_value'key in dictionary检查指定的键是否存在于字典中,返回布林值。if 'key' in my_dict:dictionary.get(key)返回指定键对应的值,如果键不存在,则返回指定的预设值。value = my_dict.get('key', default)dictionary.pop(key)删除指定键的键值对,返回对应的值。removed_value = my_dict.pop('key')dictionary.keys()返回字典中所有的键的列表。keys_list = my_dict.keys()dictionary.values()返回字典中所有的值的列表。values_list = my_dict.values()dictionary.items()返回字典中所有的键值对的元组列表。items_list = my_dict.items()dictionary.clear()清空字典中的所有键值对,使其变为空字典。my_dict.clear()dictionary.copy()返回字典的副本。new_dict = my_dict.copy()dictionary.update(other_dict)将另一个字典的键值对更新到原字典中。my_dict.update(new_dict)dictionary.setdefault(key, default)返回指定键对应的值,如果键不存在,则设定该键的值为预设值。value = my_dict.setdefault('key', default)

集合

http://img2.58codes.com/2024/20072651R63QQWL402.jpg

集合(Set)是 Python 中的一种无序、可变的资料结构,用于存储多个元素,且集合中的元素是唯一的(不重複)。集合使用大括号 {} 来定义,元素之间使用逗号 , 分隔。

my_set = {1, 2, 3}another_set = set([3, 4, 5])

集合有以下特点:

元素无序:集合中的元素没有固定的顺序,因此无法使用索引来访问。元素唯一:集合中的元素是唯一的,不会有重複的元素。可变性:集合中的元素可以被新增、删除和修改。

你可以使用集合来解决需要存储一组元素,但不需要考虑元素顺序和重複的问题的情况。
集合提供了各种方法来执行集合间的交集、联集、差集等操作。

新增元素到集合

my_set = {1, 2, 3}my_set.add(4)print(my_set)  # 输出:{1, 2, 3, 4}

删除元素从集合

my_set = {1, 2, 3, 4}my_set.remove(3)print(my_set)  # 输出:{1, 2, 4}

删除元素但不引发错误,如果元素不存在:

my_set = {1, 2, 3, 4}my_set.discard(5)  # 元素 5 不存在于集合,但不会引发错误print(my_set)      # 输出:{1, 2, 3, 4}

清空集合

my_set = {1, 2, 3, 4}my_set.clear()print(my_set)  # 输出:set()

複製集合:

original_set = {1, 2, 3}new_set = original_set.copy()print(new_set)  # 输出:{1, 2, 3}

您可以根据这些範例来理解集合的新增、修改和删除操作。

集合运算

运算符号 / 方法範例AND交集&set1 & set2交集方法.intersection(set2)set1.intersection(set2)OR联集|set1 | set2联集方法.union(set2)set1.union(set2)XOR差集-set1 - set2差集方法.difference(set2)set1.difference(set2)

常用方法

方法 / 操作说明範例add(element)新增元素到集合my_set = {1, 2, 3}my_set.add(4)# 现在 my_set = {1, 2, 3, 4}remove(element)移除元素从集合,如果元素不存在会引发错误my_set = {1, 2, 3, 4}my_set.remove(3)# 现在 my_set = {1, 2, 4}discard(element)移除元素从集合,元素不存在不会引发错误my_set = {1, 2, 3, 4}my_set.discard(5)# 现在 my_set = {1, 2, 3, 4}pop()移除并回传任意元素my_set = {1, 2, 3}removed_element = my_set.pop()clear()清空集合my_set = {1, 2, 3}my_set.clear()# 现在 my_set = set()copy()複製集合original_set = {1, 2, 3}new_set = original_set.copy()len(set)回传集合中元素的数量my_set = {1, 2, 3}length = len(my_set)# length 为 3element in set检查元素是否在集合中my_set = {1, 2, 3}result = 2 in my_set# result 为 Trueset1.union(set2)回传两个集合的联集set1 = {1, 2, 3}set2 = {3, 4, 5}union_set = set1.union(set2)set1.intersection(set2)回传两个集合的交集set1 = {1, 2, 3}set2 = {3, 4, 5}intersection_set = set1.intersection(set2)set1.difference(set2)回传 set1 减去 set2 的差集set1 = {1, 2, 3}set2 = {3, 4, 5}difference_set = set1.difference(set2)set1.symmetric_difference(set2)回传两个集合的对称差集set1 = {1, 2, 3}set2 = {3, 4, 5}symmetric_difference_set = set1.symmetric_difference(set2)set1.issubset(set2)检查 set1 是否是 set2 的子集set1 = {1, 2}set2 = {1, 2, 3}result = set1.issubset(set2)# result 为 Trueset1.issuperset(set2)检查 set1 是否是 set2 的超集set1 = {1, 2, 3}set2 = {1, 2}result = set1.issuperset(set2)# result 为 True

系列文章

分享所学贡献社会
[Python教学]开发工具介绍
[开发工具] Google Colab 介绍
[Python教学] 资料型态
[Python教学] if判断式
[Python教学] List 清单 和 Tuple元组
[Python教学] for 和 while 迴圈
[Python教学] Dictionary 字典 和 Set 集合
[Python教学] Function函示
[Python教学] Class 类别

最后最后有一件小小的请求,请大家帮我填写一下问卷,
让我们知道你想上怎么样课程,感激不尽。
问卷这边

Facebook 粉丝页 - TechMasters 工程师养成记

程式教育 - 工程师养成记

同步分享到部落格


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章