gpt4 book ai didi

python - 访问列表中的字典值

转载 作者:行者123 更新时间:2023-11-28 21:44:35 25 4
gpt4 key购买 nike

我正在尝试在 python 中复制 MATLAB 中的一些功能,并且正在寻找一种 pythonic 方法来解决这个问题。

考虑以下示例。

import io
import csv

data = """name,age,height
scott,31,175
bob,45,180
george,2,100
"""

f = io.StringIO(data)
reader = csv.reader(f, delimiter=',')
fields = next(reader)
table = []

for row in reader:
item = dict(zip(fields, row))
table.append(item)

导入了一些数据,每一行都是列表中的一个项目,每一列都与它在字典中的字段名称配对。

访问特定元素的单个字段很简单

>>> table[1]['name']
'bob'

除了使用 for 循环或列表理解之外,如何返回表中“名称”字段的所有值?

ages = [x['age'] for x in table]

在 MATLAB 中我可以做以下事情

ages = [table(:).age]

这将返回一个包含每个人年龄的数组。

有没有办法从项目列表中返回单个字段的所有元素?还是列表理解是最好的方法?

[编辑]:如果我只想访问前 2 个元素并获取它们的字段怎么办?还是最后两个元素?列表理解仍然是最好的方法吗?

也许有更好的数据结构可以做到这一点?

最佳答案

A list comprehension是创建列表的最佳选择。

也就是说,您应该使用 DictReader而不是代码中的 Vanilla reader:

...
f = io.StringIO(data)
reader = csv.DictReader(f) # default delimiter is ,
table = list(reader)

ages = [x['age'] for x in table]
names = [x['name'] for x in table]

关于python - 访问列表中的字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40512144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com