我希望函数返回循环的所有索引和值:
代码:
a = [["one"], ["two"], ["three"], ["four"]]
def count(a):
for i, x in enumerate(a):
return i,x
aa = count(a)
print(aa)
输出:
(0, ['one'])
预期输出:
(0 ['one'])
(1 ['two'])
(2 ['three'])
(3 ['four'])
答案 0 :(得分:1)
您只获得第一项,因为您是第一次循环时返回。尝试这样的事情。根据需要对其进行修改。
a = [["one"], ["two"], ["three"], ["four"]]
def count(a):
output_str = ""
for i, x in enumerate(a):
output_str += str(i) + "," + str(x) + "\n"
return output_str
aa = count(a)
print(aa)
输出
0,['one']
1,['two']
2,['three']
3,['four']
作为@C。 Yduqoli建议,可以使用yield
完成此操作。但是会涉及一个额外的步骤,例如:
a = [["one"], ["two"], ["three"], ["four"]]
def count(a):
for i, x in enumerate(a):
yield i,x
aa = count(a)
for item in aa:
print(item)
输出
(0, ['one'])
(1, ['two'])
(2, ['three'])
(3, ['four'])
答案 1 :(得分:0)
由于enumerate()
返回的是iterable
,而不是sequence
,因此您可以通过sequence
或{{1 }}。
list()
请注意,由于我们在此处打印tuple()
,因此上述代码的输出与您期望的不完全相同。