【发布时间】:2010-07-11 19:09:39
【问题描述】:
如果我有一个列表列表:
x = [['1','2','3'],['4','5','6'],['7','8','9']]
如何遍历这些列表并打印它们以获得以下输出?
1, 2, 3
4, 5, 6
7, 8, 9
【问题讨论】:
如果我有一个列表列表:
x = [['1','2','3'],['4','5','6'],['7','8','9']]
如何遍历这些列表并打印它们以获得以下输出?
1, 2, 3
4, 5, 6
7, 8, 9
【问题讨论】:
你可以使用itertools.chain:
from itertools import chain
for i in chain.from_iterable(x):
print i
【讨论】:
试试这个:
for l in x:
print ', '.join(map(str, l))
输出:
1、2、3 4、5、6 7、8、9【讨论】:
你几乎拥有它:
# python
x = [['1','2','3'],['4','5','6'],['7','8','9']]
for i in x:
print i[0]
1
4
7
for i in x:
print i
['1', '2', '3']
['4', '5', '6']
['7', '8', '9']
for i in x[0]:
print i
1
2
3
【讨论】:
如果您正在讨论一个接一个地处理数组中的每个元素(我在这里假设打印只是一个示例,您实际所需的处理更复杂),最简单 方法是不要那样做。显然,您的数据以这种方式结构化是有原因的,在这种情况下,您的代码应该反映它。
您只需使用一条for 语句就可以节省非常一点,所以我会使用:
for xlist in x:
for n in xlist:
do something with n
信不信由你,让您的代码镜像您的数据实际上可以提高代码的可读性。
例如,要获得编辑中指定的确切输出:
#!/usr/bin/python
x = [['1','2','3'],['4','5','6'],['7','8','9']]
for xlist in x:
s = ""
for n in xlist:
s = "%s, %c"%(s,n)
print s[2:]
【讨论】:
就概念而言,实际遍历很简单:
for i in x: #a list
for j in i: #elements of the list
print j
这将打印 1 2 3 4 5 6 7 8 9,换行中的每个数字
您可以根据需要更改模式。
【讨论】:
x = [['1','2','3'],['4','5','6'],['7','8','9']]
[k for y in x for k in y]
输出:
['1', '2', '3', '4', '5', '6', '7', '8', '9']
【讨论】: