如果我有一个列表的列表:
如何迭代这些列表并将它们打印出来以获得以下输出?
x = [['1','2','3'],['4','5','6'],['7','8','9']]
如何迭代这些列表并将它们打印出来以获得以下输出?
1, 2, 3
4, 5, 6
7, 8, 9
试试这个:
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
itertools.chain
:from itertools import chain
for i in chain.from_iterable(x):
print i
如果你想逐个处理数组中的每个元素(我假设这里的打印只是一个例子,你实际想要的处理更加复杂),最简单的方法就是不要这样做。显然,你按照某种方式结构化了你的数据,因此你的代码应该反映出来。
使用单个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']