【100天精通python】Day9:数据结构_字典、集合

简介: 【100天精通python】Day9:数据结构_字典、集合

1 字典    

         在Python中,字典(Dictionary)是一种无序的数据结构,用于存储键值对的集合。每个键(Key)必须是唯一的,而值(Value)可以是任意类型的数据。 字典使用大括号 “{} ”来定义,键和值之间用冒号 “: ”分隔,每对键值对之间用逗号“ ,” 分隔。 字典的键必须是不可变的数据类型(例如整数、字符串、元组),而值可以是任意数据类型,包括列表、字典等。

字典示意图:

caa4b521a2bf4a08833e852147736371.png

1.1 字典的基本操作示例

       包括创建访问修改删除字典中的值,获取字典的键和值,遍历字典

# 创建一个字典
my_dict = {"name": "Alice", "age": 30, "email": "alice@example.com"}
# 访问字典中的值
print(my_dict["name"])  # 输出: Alice
print(my_dict["age"])   # 输出: 30
print(my_dict["email"]) # 输出: alice@example.com
# 修改字典中的值
my_dict["age"] = 31
# 添加新的键值对
my_dict["address"] = "123 Main St"
# 删除键值对
del my_dict["email"]
# 检查键是否存在
if "name" in my_dict:
    print("Name exists in the dictionary.")
# 获取字典中所有键
keys = my_dict.keys()
print(keys) # 输出: dict_keys(['name', 'age', 'address'])
# 获取字典中所有值
values = my_dict.values()
print(values) # 输出: dict_values(['Alice', 31, '123 Main St'])
# 获取字典中所有键值对
items = my_dict.items()
print(items) # 输出: dict_items([('name', 'Alice'), ('age', 31), ('address', '123 Main St')])
# 遍历字典
for key, value in my_dict.items():
    print(key, value)
# 输出:
# name Alice
# age 31
# address 123 Main St

字典在Python中经常用于存储具有关联关系的数据,例如存储用户信息、配置选项等。由于其高效的查找和修改特性,字典是Python编程中常用的数据结构之一。

1.2 字典推导式

       应用字典推导式实现根据名字和星座创建一个字典python

# 假设有两个列表,一个是名字列表,一个是星座列表
names = ["张三", "李四", "王五", "赵六"]
constellations = ["白羊座", "双子座", "狮子座", "天蝎座"]
# 使用字典推导式创建字典,将名字作为键,星座作为值
name_constellation_dict = {name: constellation for name, constellation in zip(names, constellations)}
# 打印创建的字典
print(name_constellation_dict)
 输出结果:
{'张三': '白羊座', '李四': '双子座', '王五': '狮子座', '赵六': '天蝎座'}

2 集合

       在Python中,集合(Set)是一种无序且不重复的数据结构。集合中的元素必须是不可变的数据类型,例如数字、字符串、元组等,而不能包含可变的数据类型,例如列表、字典等。集合使用大括号 {} 来定义,元素之间用逗号 , 分隔。

       集合的主要特点是它不允许包含重复的元素,因此可以用于去除重复项。另外,集合支持一些基本的集合运算,例如并集、交集、差集等。

2.1 集合的常用操作示例

  包括创建添加删除集合元素,遍历集合,集合的交集并集差集。

# 创建一个集合
my_set = {1, 2, 3, 4, 5}
# 添加元素到集合
my_set.add(6)
# 删除集合中的元素
my_set.remove(3)
# 检查元素是否存在于集合中
if 4 in my_set:
    print("4 exists in the set.")
# 获取集合的长度
length = len(my_set)
print("Length of the set:", length)
# 遍历集合
for item in my_set:
    print(item)
# 创建另一个集合
other_set = {4, 5, 6, 7}
# 计算并集
union_set = my_set | other_set
print("Union set:", union_set)
# 计算交集
intersection_set = my_set & other_set
print("Intersection set:", intersection_set)
# 计算差集
difference_set = my_set - other_set
print("Difference set:", difference_set)

3 列表、元组、字典、集合的区别

0900ae6998e243a49d6ca1d26b806fe1.png

1.列表(List):

  1. 列表是有序的数据结构,可以包含任意类型的元素,包括整数、字符串、列表、元组、字典等。
  2. 列表使用方括号 [ ] 定义,元素之间用逗号 , 分隔。
  3. 列表是可变的,可以通过索引修改或删除元素,也可以通过各种方法进行添加、插入、删除操作。
  4. 列表允许包含重复的元素。

2.元组(Tuple):

  1. 元组也是有序的数据结构,类似于列表,但元组是不可变的,一旦创建就不能修改。
  2. 元组使用圆括号 ( ) 定义,元素之间用逗号 , 分隔。
  3. 元组一旦创建后,不能修改其中的元素,因此可以作为字典的键或集合的元素,而列表不能。

3.字典(Dictionary):

  1. 字典是一种键值对的数据结构,用于存储关联关系。
  2. 字典使用花括号 { } 定义,键值对之间用冒号 : 分隔,键值对之间用逗号 , 分隔。
  3. 字典中的键必须是不可变的数据类型,例如字符串、数字、元组,而值可以是任意类型的数据。
  4. 字典是可变的,可以通过键来修改、添加或删除对应的值。

4.集合(Set):

  1. 集合是无序且不重复的数据结构,只能包含不可变的元素,不能包含列表、字典等可变的数据类型。
  2. 集合使用花括号 { } 定义,元素之间用逗号 , 分隔。
  3. 集合是可变的,可以通过方法进行添加、删除等操作。
  4. 集合可以用于去除列表中的重复项,以及执行一些基本的集合运算,如并集、交集、差集等。


目录
相关文章
|
5月前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
149 1
思科设备巡检命令Python脚本大集合
|
3月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
137 66
|
4月前
|
存储 开发者 索引
Python 中常见的数据结构
这些数据结构各有特点和适用场景,在不同的编程任务中发挥着重要作用。开发者需要根据具体需求选择合适的数据结构,以提高程序的效率和性能
157 59
|
4月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
176 59
|
4月前
|
存储 开发者 Python
Python 中的数据结构与其他编程语言数据结构的区别
不同编程语言都有其设计理念和应用场景,开发者需要根据具体需求和语言特点来选择合适的数据结构
128 55
|
2月前
|
存储 算法 测试技术
【C++数据结构——线性表】求集合的并、交和差运算(头歌实践教学平台习题)【合集】
本任务要求编写程序求两个集合的并集、交集和差集。主要内容包括: 1. **单链表表示集合**:使用单链表存储集合元素,确保元素唯一且无序。 2. **求并集**:遍历两个集合,将所有不同元素加入新链表。 3. **求交集**:遍历集合A,检查元素是否在集合B中存在,若存在则加入结果链表。 4. **求差集**:遍历集合A,检查元素是否不在集合B中,若满足条件则加入结果链表。 通过C++代码实现上述操作,并提供测试用例验证结果。测试输入为两个集合的元素,输出为有序集合A、B,以及它们的并集、交集和差集。 示例测试输入: ``` a c e f a b d e h i ``` 预期输出:
51 7
|
3月前
|
存储 运维 监控
探索局域网电脑监控软件:Python算法与数据结构的巧妙结合
在数字化时代,局域网电脑监控软件成为企业管理和IT运维的重要工具,确保数据安全和网络稳定。本文探讨其背后的关键技术——Python中的算法与数据结构,如字典用于高效存储设备信息,以及数据收集、异常检测和聚合算法提升监控效率。通过Python代码示例,展示了如何实现基本监控功能,帮助读者理解其工作原理并激发技术兴趣。
84 20
|
2月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
54 2
|
4月前
|
存储 算法 搜索推荐
Python 中数据结构和算法的关系
数据结构是算法的载体,算法是对数据结构的操作和运用。它们共同构成了计算机程序的核心,对于提高程序的质量和性能具有至关重要的作用
116 33
|
3月前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
66 5

热门文章

最新文章