我有以下代码:
reader = csv.DictReader(f, delimiter='\x01', lineterminator="\x02")
for line in (reader + my_dict_of_values):
do_something()
有没有一种方法可以迭代两种不同的类型,如上所述而不调用另一个函数?否则我得到:TypeError: unsupported operand type(s) for +: 'instance' and 'dict'
。
答案 0 :(得分:4)
这应该做你想要的:
import csv
from itertools import chain
reader = csv.DictReader(f, delimiter='\x01', lineterminator="\x02")
my_dict_of_values = {} # whatever goes here
for line in chain(reader, my_dict_of_values):
do_something(line)
答案 1 :(得分:0)
所以你想迭代读者然后迭代my_dict_of_values?在这种情况下听起来像两个for循环。
确切地说 - 我在for循环中只有大约100行代码,所以如果可能的话,想把它压缩成一个for循环
你需要做的是让你的循环体成为一个功能。然后你可以在两个循环中使用它。变化:
for line in reader:
[100 lines of code]
为:
def do_something(line):
[100 lines of code]
for line in reader:
do_something(line)
for key in my_dict_of_values:
do_something(key)