gpt4 book ai didi

python - 从 csv 文件列制作字典

转载 作者:太空狗 更新时间:2023-10-30 01:55:41 25 4
gpt4 key购买 nike

我对 python 中的字典概念不熟悉。我有一个包含多列的 csv 文件,我想创建一个字典,以便从第一列获取键,从第二列获取值,并为这两列的所有行创建一个键:值对。代码如下:

    if __name__=="__main__":
reader = csv.reader(open("file.csv", "rb"))
for rows in reader:
k = rows[0]
v = rows[1]
mydict = {k:v}
print (mydict)

问题:返回的输出仅针对前两列的“最后”或“最底部”行,即 {'12654':'18790'}。我希望字典以这种格式包含前两列的所有 100 行。怎么做?我可以在前两列的行号上运行一些循环来执行此操作吗...我不知道该怎么做。

最佳答案

if __name__=="__main__":
mydict = {}
reader = csv.reader(open("file.csv", "rb"))
for rows in reader:
k = rows[0]
v = rows[1]
mydict[k] = v
print mydict

这里:

mydict = {k:v}

您在每次迭代中都在创建新字典,并且之前的数据已经丢失。

更新:

你可以做这样的事情:

mydict = {}
L = [(1, 2), (2, 4), (1, 3), (3, 2), (3, 4)]
for el in L:
k, v = el
if not k in mydict:
mydict[k] = [v]
else:
mydict[k].append(v)

print mydict

>>>
{1: [2, 3], 2: [4], 3: [2, 4]}

这样,同一个键的每个值都会被存储

您的代码将是:

if __name__=="__main__":
mydict = {}
reader = csv.reader(open("file.csv", "rb"))
for i, rows in enumerate(reader):
if i == 0: continue
k = rows[0]
v = rows[1]
if not k in mydict:
mydict[k] = [v]
else:
mydict[k].append(v)

print mydict

更新 2:你是说?

for k, v in mydict.items():
print "%s: %s" % (k, v)

>>>
1: [2, 3]
2: [4]
3: [2, 4]

更新3:

这应该有效:

if __name__=="__main__":
mydict = {}
reader = csv.reader(open("file.csv", "rb"))
for i, rows in enumerate(reader):
if i == 0: continue
k = rows[0]
v = rows[1]
if not k in mydict:
mydict[k] = [v]
else:
mydict[k].append(v)

print mydict

关于python - 从 csv 文件列制作字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com