Python 列表字典迭代


在本文中,我们将学习在 Python 中迭代字典列表的各种方法。在使用 Python 处理数据时,经常会遇到包含字典列表的情况。每个字典代表一个单独的数据条目,您需要对这些字典执行操作或从中提取特定信息。

使用 For 循环和字典访问方法

这种方法是使用 for 循环迭代列表中的每个字典。在循环内部,我们可以使用字典访问方法(如 keys()、values() 或 items())分别检索键、值或键值对。

语法

keys()

dictionary.keys()

keys() 方法返回一个包含字典键的视图对象。

values()

dictionary.values()

values() 方法返回一个包含字典值的视图对象。

items()

dictionary.items()

items() 方法返回一个包含字典键值对(作为元组)的视图对象。

解释

  • 创建一个字典列表 `list_of_dict`。

  • 使用 for 循环迭代字典列表。

  • 现在我们使用 items() 方法访问每个字典中的键值对。

  • 打印键值对。

示例

Open Compiler
list_of_dict = [ {"course": "DBMS", "price": 1500}, {"course": "Python", "price": 2500}, {"course": "Java", "price": 2500}, ] for dict in list_of_dict: for key, value in dict.items(): print(key, ":", value) print("")

输出

course : DBMS
price : 1500

course : Python
price : 2500

course : Java
price : 2500

使用列表推导式

列表推导式提供了一种迭代字典列表并在每个字典上执行操作的方法。现在我们将使用列表推导式迭代整个列表。

语法

[expression for element in iterable]
  • 可迭代对象:可以是列表、集合、元组或任何 Python 可迭代对象。

  • 元素:可迭代对象中的项目。

  • 表达式:我们要对元素执行的操作。

解释

  • 创建一个字典列表 `list_of_dict`。

  • 使用列表推导式迭代列表并在单独的列表中获取字典中的信息。

示例

Open Compiler
list_of_dict = [ {"course": "DBMS", "price": 1500}, {"course": "Python", "price": 2500}, {"course": "Java", "price": 2500}, ] # iterating through each dictionary course= [dictionary["course"] for dictionary in list_of_dict] price= [dictionary["price"] for dictionary in list_of_dict] print(course) print(price)

输出

['DBMS', 'Python', 'Java']
[1500, 2500, 2500]

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

使用 map() 函数

map() 函数是一个内置的 Python 函数,它将指定的函数应用于可迭代对象中的每个项目(在本例中,可迭代对象是列表),并返回一个生成结果的迭代器。它接受两个参数:要应用的函数和可迭代对象。

语法

map(function, iterable)
  • 可迭代对象:将应用指定函数的项目序列。

  • 函数:我们要应用于迭代器中项目的函数。

解释

  • 创建一个字典列表。

  • 将函数和可迭代对象(即字典列表)传递给 map() 方法。

  • 使用 list() 方法将 map() 给出的结果转换为列表。

示例

Open Compiler
list_of_dict = [ {"course": "DBMS", "price": 1500}, {"course": "Python", "price": 2500}, {"course": "Java", "price": 2500}, ] def func(dict): return dict["course"] # applying the function to all the dictionaries present in the list. course = list(map(func, list_of_dict)) print(course)

输出

['DBMS', 'Python', 'Java']

使用 pandas 库

DataFrame() 构造函数会将字典列表转换为数据框。列表中的每个字典都将表示为数据框中的一行。在处理大型数据集时,迭代字典列表可能很方便。

语法

pd.DataFrame(iterable)

可迭代对象:元素序列。例如列表、元组。

解释

  • 创建一个字典列表。

  • 将字典列表传递给 pandas 库中的 DataFrame() 构造函数。

  • 构造函数将返回一个数据框对象,其中每个字典都是数据框中的一行。

示例

import pandas as pd list_of_dict = [ {"course": "DBMS", "price": 1500}, {"course": "Python", "price": 2500}, {"course": "Java", "price": 2500}, ] df = pd.DataFrame(list_of_dict) print(df)

输出

   course  price
0    DBMS   1500
1  Python   2500
2    Java   2500

在 pandas 库的 DataFrame 类中使用 from_records() 方法

在这种方法中,我们将使用 from_records() 方法。pandas 中的 pd.DataFrame.from_records() 方法允许我们根据记录列表(元组或结构化数组)或可迭代对象创建 DataFrame。

语法

pd.DataFrame.from_records(data)
  • 数据:结构化数组,在本例中为字典列表。

解释

  • 创建一个字典列表。

  • 将列表传递给 from_records() 方法。

  • from_records() 方法将返回一个数据框,其中列表中的每个字典都是数据框中的一行。

示例

import pandas as pd list_of_dict = [ {"course": "DBMS", "price": 1500}, {"course": "Python", "price": 2500}, {"course": "Java", "price": 2500}, ] df = pd.DataFrame.from_records(list_of_dict) print(df)

输出

   course  price
0    DBMS   1500
1  Python   2500
2    Java   2500

结论

在本文中,我们探讨了不同的方法,包括循环、列表推导式,甚至利用 pandas 库的功能来迭代字典列表。学习愉快!

更新于:2023年8月9日

8000+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告