如何解决为CSV文件的名称和值列表创建Dict
我是python的初学者,正试图找出一种方法来创建CSV文件中的名称字典和值列表。我在网上遇到了这段代码。它有效,但是我听不懂。
任何帮助将不胜感激。
我感到迷路的主要地方是for循环,然后是strand =...。最后是curr_row = row.strip()。split(',')]
代码:
strands = []
persons = {}
for ind,row in enumerate(csv_file):
if ind == 0:
strand = [strand for strand in row.strip().split(',')][1:]
else:
curr_row = row.strip().split(',')
persons[curr_row[0]] = [int(x) for x in curr_row[1:]]```
the csv file looks like this:
name,AGATC,AATG,TATC
Alice,2,8,3
Bob,4,1,5
Charlie,3,5
output : {'Alice': [2,3],'Bob': [4,5],'Charlie': [3,5]}
解决方法
带有enumerate的for循环将获得ind作为该行的索引,而变量row是该行上的数据。
该链是csv_file的第一行,并且列表理解正在该行上运行。如果您不确定列表理解是什么,请通过以下链接进行说明:https://www.pythonforbeginners.com/basics/list-comprehensions-in-python
row.strip()函数将删除所有空格。
.split(',')函数会将csv_file中的该行变成由','逗号分隔的项目列表。
因此,子链为['name','AGATC','AATG','TATC']。
curr_row在以下几行中执行相同的操作。
因此,csv_file中的第二行是:
Alice,2,8,3
运行后,
curr_row = row.strip().split(',')
在第二行,curr_row等于['Alice',2,8,3]
persons[curr_row[0]] = [int(x) for x in curr_row[1:]]
上方的行用键“ Alice”将其添加到字典中,然后使用列表理解力在其余数字上循环,这就是为什么如果您查看列表索引,它从1开始的原因。
curr_row[1:]
如果链接没有帮助,那么Corey Schafer的这部视频可能就是我学习如何使用列表推导的方式。
https://www.youtube.com/watch?v=3dt4OGnU5sM&t=3s
我希望能帮上忙。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。