在python中迭代列表时出现问题

2024-04-26 10:45:19 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,我有一个名为“list”的列表,如下所示:

[{'lastname': 'lname1', 'firstname': 'fname1', 'shortname': 'SN1'},
{'lastname': 'lname2', 'firstname': 'fname2', 'shortname': 'SN2'},
{'lastname': 'lname3', 'firstname': 'fname3', 'shortname': 'SN3'}]

我需要能够访问列表中每个项目的这些属性。所以我必须得到每个用户的姓氏,每个用户的名字,等等

由于这是一份清单,我一直在努力做到以下几点:

^{pr2}$

但是我得到一个错误,说列表索引必须是整数,而不是元组。在

所以试试这个:

for idx in enumerate(list):
        print(idx)

我得到的输出如下:

(0, {'lastname': 'lname1', 'firstname': 'fname1', 'shortname': 'SN1'})
(1, {'lastname': 'lname2', 'firstname': 'fname2', 'shortname': 'SN2'})
(2, {'lastname': 'lname3', 'firstname': 'fname3', 'shortname': 'SN3'})

我只想得到索引,这样我就可以遍历每个列表项

firstname = list[idx]["firstname"]
lastname = list[idx]["lastname"]

等等。在

注意:如果我说

print(list[0]["firstname"]) 

它工作得很好。在

我做错什么了?或者我需要做什么?谢谢!在


Tags: 列表firstnamelistidxlastnameshortnamefname1fname2
3条回答

列表索引是整数。在

>>> x = ['test','test2','test3']
>>> x[1]
'test2'

你有一本单子词典。所以你要做的就是遍历列表和字典。是这样的:

^{pr2}$

如果你只想知道名字:

for d in list:
 print d['firstname']

与JavaScript不同,在Python中迭代一个序列会产生元素,而不是索引。在

print idx['lastname']
for item in list:
    item['firstname']

虽然使用名称list作为列表不是一个好主意,因为这已经是Python标准库中列表的构造函数的名称。在

enumerate在您需要列表中项目的索引时可用。它生成一个tuple,其中包含项的索引和项本身(正如您自己体验的那样)。在

相关问题 更多 >