Python “学习指数”;“用于环路中”;
我有一个列表,其中包含列表。内部列表可能为空。结构如下:Python “学习指数”;“用于环路中”;,python,Python,我有一个列表,其中包含列表。内部列表可能为空。结构如下: [[],[a,b],[],[c],[d]] 我的代码: for inner in list: for char in inner: print char # I want to add indexes of inner lists here 输出为: abcd 我希望输出为: 2a2b4c5d 这些数字是内部列表的索引。有没有快速的方法可以做到这一点?请注意,您不应该将列表用作变量名,因为它会
[[],[a,b],[],[c],[d]]
我的代码:
for inner in list:
for char in inner:
print char # I want to add indexes of inner lists here
输出为:
abcd
我希望输出为:
2a2b4c5d
这些数字是内部列表的索引。有没有快速的方法可以做到这一点?请注意,您不应该将
列表
用作变量名,因为它会隐藏内置的列表
类型
>>> lst = [[],['a','b'],[],['c'],['d']]
>>> for idx, inner in enumerate(lst):
for char in inner:
print idx, char
1 a
1 b
3 c
4 d
您可以看到,enumerate()
计数以零为基础。您可以将第二个参数指定为start,以匹配基于一个参数的预期输出:
>>> for idx, inner in enumerate(lst, 1):
for char in inner:
print idx, char
2 a
2 b
4 c
5 d
但是,只有在必要时才这样做,python按惯例计数为0。请注意,您不应该将列表
用作变量名,因为它隐藏了内置的列表
类型
>>> lst = [[],['a','b'],[],['c'],['d']]
>>> for idx, inner in enumerate(lst):
for char in inner:
print idx, char
1 a
1 b
3 c
4 d
for i, inner in enumerate(myList): # just add an index variable here
for char in inner:
print i # and use it wherever you need to
print char
您可以看到,enumerate()
计数以零为基础。您可以将第二个参数指定为start,以匹配基于一个参数的预期输出:
>>> for idx, inner in enumerate(lst, 1):
for char in inner:
print idx, char
2 a
2 b
4 c
5 d
但只有在必要时才这样做,python按惯例计数为0。这应该可以:
for i, inner in enumerate(myList): # just add an index variable here
for char in inner:
print i # and use it wherever you need to
print char
for i in range(len(list)):
for char in list[i]:
print i+1
print char
(键入此o.o时出现三个新答案)这应该可以:
for i in range(len(list)):
for char in list[i]:
print i+1
print char
(键入此o.o时出现了三个新答案)要准确获得该输出,一种方法是直接写入sys.stdout。print命令(在2.x中)最多只能在每个index+char之间留下空格
import sys
for ndx, inner in enumerate([[],['a','b'],[],['c'],['d']], 1):
for char in inner:
sys.stdout.write('%d%s' % (ndx, char))
要准确获得该输出,一种方法是直接写入sys.stdout。print命令(在2.x中)最多只能在每个index+char之间留下空格
import sys
for ndx, inner in enumerate([[],['a','b'],[],['c'],['d']], 1):
for char in inner:
sys.stdout.write('%d%s' % (ndx, char))
您需要在内部列表项周围加引号,除非它们确实是变量。此外,列表是一个糟糕的名字选择。是的,有引号。我在这里写的时候忘了。你需要在内部列表项周围加引号,除非它们真的是变量。此外,列表是一个糟糕的名字选择。是的,有引号。我在这里写的时候忘记了。这将给出“ValueError:需要多个值才能解包”。您需要使用enumerate,如ch3ka的回答所示,这将给出“ValueError:需要多个值才能解包”。您需要使用enumerate,如ch3ka的答案所示