如何在不将循环计数分配给“键”的情况下使用“枚举”遍历字典?

时间:2020-10-18 12:48:14

标签: python indexing

我有带有三个标头(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')

注意:我不想打印索引。

非常感谢

1 个答案:

答案 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)