【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. 集合可以用于去除列表中的重复项,以及执行一些基本的集合运算,如并集、交集、差集等。


目录
相关文章
|
10月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
525 2
|
10月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
784 0
|
11月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
333 0
|
存储 索引 Python
python 集合的所有基础知识
python 集合的所有基础知识
1197 0
|
10月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
405 4
|
11月前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
1069 2
|
11月前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
818 0
|
11月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
386 0
|
存储 监控 安全
企业上网监控系统中红黑树数据结构的 Python 算法实现与应用研究
企业上网监控系统需高效处理海量数据,传统数据结构存在性能瓶颈。红黑树通过自平衡机制,确保查找、插入、删除操作的时间复杂度稳定在 O(log n),适用于网络记录存储、设备信息维护及安全事件排序等场景。本文分析红黑树的理论基础、应用场景及 Python 实现,并探讨其在企业监控系统中的实践价值,提升系统性能与稳定性。
800 1

推荐镜像

更多