2010-07-11 160 views
3

简单的问题的列表,我有一个列表,如果列表的Python:索引列表

x = [['1','2','3'],['4','5','6'],['7','8','9']] 

最新通过每个列表中的一个for循环索引的simpliest方式?例如

for i in x: 
    print 1st_list_in_list 
    print 2nd_list_in_list 
    print 3rd_list_in_list 

编辑

让我进一步阐述,我想打印每一个列表是怎么回事例如

for i in x: 
    print 1st_list_in_list 
    print 2nd_list_in_list 

将返回

1, 2,3
4, 5,6

+1

我不知道你正在尝试做的。你的例子的期望输出是什么? – sth 2010-07-11 19:14:42

+1

你有没有试过'为我在x:打印我'?为什么不能满足你的需求? – 2010-07-11 19:23:44

+1

因为我使用每个列表进入MySQL数据库,我不想将整个列表输入数据库,我需要每个列表中的每个值 – Tahira 2010-07-11 19:26:43

回答

8

试试这个:

for l in x: 
    print ', '.join(map(str, l)) 

输出:

 
1, 2, 3 
4, 5, 6 
7, 8, 9 
5

你几乎有它:

# 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 
+0

恩,它不完全是我在找什么。当我打印时,我希望打印每个列表,例如上面的代码将打印1,4和7,但我希望打印1,2,3 – Tahira 2010-07-11 19:16:00

+0

第二个打印[1,2,3]。如果你只想通过第一个,我会在一秒钟内补充。 – eruciform 2010-07-11 19:29:47

+0

我不确定你想要哪一个 - 它必须是这三个之一...... – eruciform 2010-07-11 19:31:59

1

如果你谈论的阵列一个接一个处理每个元素(我这里假设印刷只是一个例子和你的实际需要的处理比较复杂),最简单的方法就是不要那样做。你显然有这样的数据结构的原因,在这种情况下你的代码应该反映它。

节省非常一点做以单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:] 
+0

+1“相信与否,让你的代码镜像你的数据实际上提高了代码的可读性。” – Achim 2010-07-11 19:32:57

0

只是为理念,实际的遍历很简单:

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,每个数字以换行符

可以更改图案作为你想。

1

您可以使用itertools.chain

from itertools import chain 

for i in chain.from_iterable(x): 
    print i 
0
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']