【发布时间】:2019-07-09 06:10:10
【问题描述】:
输出必须是这样的:
[{'id': '1', 'first_name': 'Heidie','gender': 'Female'}, {'id': '2', 'first_name': 'Adaline', 'gender': 'Female'}, {...}
有一个代码 sn-p 可以运行,运行这个需求。
with open('./test.csv', 'r') as file_read:
reader = csv.DictReader(file_read, skipinitialspace=True)
listDict = [{k: v for k, v in row.items()} for row in reader]
print(listDict)
但是,我无法理解上面这段代码的一些要点:
- 列表理解:
listDict = [{k: v for k, v in row.items()} for row in reader]- python 如何解释这个?
- 编译器如何组装一个总是带有标题(
id、first_name、gender)及其值的列表? - 如何使用嵌套的
for实现此代码
我看了这些答案,但我还是不明白:
我的 csv 文件:
id,first_name,last_name,email,gender
1,Heidie,Philimore,hphilimore0@msu.edu,Female
2,Adaline,Wapplington,awapplington1@icq.com,Female
3,Erin,Copland,ecopland2@google.co.uk,Female
4,Way,Buckthought,wbuckthought3@usa.gov,Male
5,Adan,McComiskey,amccomiskey4@theatlantic.com,Male
6,Kilian,Creane,kcreane5@hud.gov,Male
7,Mandy,McManamon,mmcmanamon6@omniture.com,Female
8,Cherish,Futcher,cfutcher7@accuweather.com,Female
9,Dave,Tosney,dtosney8@businesswire.com,Male
10,Torr,Kiebes,tkiebes9@dyndns.org,Male
【问题讨论】:
-
您可以发布您的
test.csv的样本吗? -
@user5173426 完成!
-
在这种情况下,理解是一种浪费。不需要字典理解,因为每一行都已经是字典。因此,列表理解也是如此,因为不需要对元素进行进一步的操作。一个简单的ˋlistDict = list(reader)ˋ就足够了。
标签: python csv dictionary for-loop list-comprehension