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

时间:2020-10-21 17:22:12

标签: python dictionary for-loop enumeration

我是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,2,5


output : {'Alice': [2, 8, 3], 'Bob': [4, 1, 5], 'Charlie': [3, 2, 5]}


1 个答案:

答案 0 :(得分:0)

带有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

我希望能帮上忙。

相关问题