2010-07-11 104 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']