Python 遍历字典列表

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()方法来访问每个字典中的键值对。

  • 打印键值对。

示例

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]
  • iterable: 可以是列表、集合、元组或任何Python可迭代对象。

  • element: 在可迭代对象中存在的项。

  • expression: 我们想对元素执行的操作。

解释

  • 创建一个字典列表list_of_dict

  • 使用列表推导式遍历列表并在不同的列表中获取字典的信息。

示例

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]

使用map()函数

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

语法

map(function, iterable)
  • Iterable: 要对其应用指定函数的项目序列。

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

解释

  • 创建一个字典列表。

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

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

示例

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)
  • 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库的能力遍历字典列表。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程