gpt4 book ai didi

python - 使用 python 将每一列存储在单独的字典中

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:12 25 4
gpt4 key购买 nike

有没有一种有效的方法可以使用 python 将制表符分隔文件的每一列存储在单独的字典中?

示例输入文件:(真实的输入文件包含数千行和数百列。列数不固定,经常变化。)

A B C
1 4 7
2 5 8
3 6 9

我需要打印A列中的值:

for cell in mydict["A"]:
print cell

并在同一行中打印值:

for i in range(1, numrows):
for key in keysOfMydict:
print mydict[key][i]

最佳答案

最简单的方法是使用 csv 模块中的 DictReader:

with open('somefile.txt', 'r') as f:
reader = csv.DictReader(f, delimiter='\t')
rows = list(reader) # If your file is not large, you can
# consume it entirely

# If your file is large, you might want to
# step over each row:
#for row in reader:
# print(row['A'])

for row in rows:
print(row['A'])

@Marius 提出了一个很好的观点 - 您可能希望通过标题单独收集所有列。

如果是这样的话,你就必须稍微调整一下你的阅读逻辑:

from collections import defaultdict
by_column = defaultdict(list)

for row in rows:
for k,v in row.iteritems():
by_column[k].append(v)

另一个选项是 pandas :

>>> import pandas as pd
>>> i = pd.read_csv('foo.csv', sep=' ')
>>> i
A B C
0 1 4 7
1 2 5 8
2 3 6 9
>>> i['A']
0 1
1 2
2 3
Name: A, dtype: int64

关于python - 使用 python 将每一列存储在单独的字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25498311/

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