我有带有三个标头(A,B和C)的csv文件,我将此文件读取为dictionary。标头是字典中的“键”,行是键值。
我需要逐行遍历字典值,然后执行一些操作,然后移至下一行(..第一个循环输出应如下所示,而不打印索引):
第一个循环中的预期输出:
A:324087rwer
B:mobile
C:test
当前代码:
import csv
with open("test.csv") as f:
rows = csv.DictReader(f)
for row in rows:
for key, value in enumerate(row.items()):
print(key, value)
当前输出:
0 ('A', '324087rwer')
1 ('B', 'mobile ')
2 ('C', 'take ')
0 ('A', 'fweo8yr30w8yr')
1 ('B', 'keep')
2 ('C', 'remove')
0 ('A', 'erwes')
1 ('B', 'website')
2 ('C', 'blacklist')
注意:我不想打印索引。
非常感谢
答案 0 :(得分:1)
enumerate
函数将返回一个包含循环计数的迭代器以及另一个包含字典键值对的元组。
这可以用类型提示来描述,例如:
Tuple[int, Tuple[KT, VT]]
因此,在内部for-loop
中,key
变量被分配给循环计数,而value
变量被分配给元组(Tuple[KT, VT]
)。 / p>
如果不需要循环计数器,则可以编写:
import csv
with open("test.csv") as f:
rows = csv.DictReader(f)
for row in rows:
for key, value in row.items():
print(key, value)
如果您需要循环计数器,则可以进行以下操作:
import csv
with open("test.csv") as f:
rows = csv.DictReader(f)
for row in rows:
for count, (key, value) in enumerate(rows.items()):
print(key, value)