Python中使用列表和字典来存储和处理复杂的数据结构

简介: Python中使用列表和字典来存储和处理复杂的数据结构

Python 中使用列表和字典可以很好地存储和处理复杂的数据结构。以下是一些常见的使用场景和示例:

  1. 嵌套列表:
    • 列表中的元素可以是另一个列表,形成嵌套列表。
    • 适用于存储二维或多维数据,如学生成绩表、棋盘等。
# 存储学生成绩
student_scores = [
    ['Alice', 90, 85, 92],
    ['Bob', 80, 75, 88],
    ['Charlie', 85, 90, 80]
]

# 访问和修改数据
print(student_scores[1][1])  # 输出 75
student_scores[0][1] = 95    # 修改 Alice 的第二个成绩
  1. 字典嵌套:
    • 字典的值可以是另一个字典,形成字典嵌套。
    • 适用于存储键-值对形式的复杂数据,如学生信息、商品详情等。
# 存储学生信息
student_info = {
   
    'Alice': {
   'age': 20, 'grade': 'A', 'major': 'CS'},
    'Bob': {
   'age': 22, 'grade': 'B', 'major': 'EE'},
    'Charlie': {
   'age': 21, 'grade': 'A+', 'major': 'Math'}
}

# 访问和修改数据
print(student_info['Bob']['grade'])  # 输出 'B'
student_info['Alice']['grade'] = 'A+'  # 修改 Alice 的成绩
  1. 列表嵌套字典:
    • 列表中的元素可以是字典,形成列表-字典结构。
    • 适用于存储一组相似的键-值对数据,如一组学生信息或商品信息。
# 存储学生信息
students = [
    {
   'name': 'Alice', 'age': 20, 'grade': 'A'},
    {
   'name': 'Bob', 'age': 22, 'grade': 'B'},
    {
   'name': 'Charlie', 'age': 21, 'grade': 'A+'}
]

# 访问和修改数据
print(students[1]['grade'])  # 输出 'B'
students[0]['grade'] = 'A+'  # 修改 Alice 的成绩
  1. 字典嵌套列表:
    • 字典的值可以是列表,形成字典-列表结构。
    • 适用于存储键对应的多个值,如一个班级学生的成绩。
# 存储学生成绩
class_scores = {
   
    'class A': [90, 85, 92, 88, 82],
    'class B': [80, 75, 88, 92, 85],
    'class C': [85, 90, 80, 75, 88]
}

# 访问和修改数据
print(class_scores['class A'][2])  # 输出 92
class_scores['class B'][1] = 82   # 修改 class B 第二个学生的成绩

通过灵活使用列表和字典,我们可以很好地存储和处理复杂的数据结构,提高代码的可读性和扩展性。

相关文章
|
1天前
|
Python
Python中解包到单独的变量对于字典
【6月更文挑战第20天】
17 11
|
1天前
|
Python
|
1天前
|
存储 索引 Python
字符串、列表、元组、字典(python)
字符串、列表、元组、字典(python)
|
1天前
|
数据库 索引 Python
Python怎么遍历字典
**Python字典遍历方法概览:** - 使用`for`循环遍历键、值或键值对。 - `items()`方法遍历键值对,适合同时访问键和值。 - `keys()`方法遍历键,`values()`方法遍历值。 - 字典推导式创建新字典,基于原字典的键值对。 - `enumerate()`结合`items()`遍历时获取索引。 - Python 2.x的`iteritems()`(Python 3.x已弃用,用`items()`替代)。 - 迭代器配合`iter()`和`next()`逐个获取键值对,节省内存。 - 回调函数自定义遍历行为,实现特定功能。
|
3天前
|
算法 C语言
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
【数据结构与算法 经典例题】使用栈实现队列(图文详解)
|
3天前
|
存储 测试技术
【数据结构】操作受限的线性表,栈的具体实现
【数据结构】操作受限的线性表,栈的具体实现
16 5
|
3天前
|
算法 C语言
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
|
4天前
|
算法
【C/数据结构和算法】:栈和队列
【C/数据结构和算法】:栈和队列
13 1
|
8天前
|
C++
【洛谷 P1044】[NOIP2003 普及组] 栈 题解(递归+记忆化搜索)
**NOIP2003普及组栈问题**:给定操作数序列1到n,仅允许push(进栈)和pop(出栈)操作。目标是计算所有可能的输出序列总数。输入包含一个整数n(1≤n≤18)。示例输入3,输出5。当队列空时返回1,栈空则只能入栈,栈非空时可入栈或出栈。AC C++代码利用记忆化搜索求解。
9 1
|
1天前
|
存储 人工智能 程序员
技术心得记录:堆(heap)与栈(stack)的区别
技术心得记录:堆(heap)与栈(stack)的区别