微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为CSV文件的名称和值列表创建Dict

如何解决为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 举报,一经查实,本站将立刻删除。