2017-06-18 165 views
2
fp.readline() 
for line in fp: 
    line_lst = line.strip().split(',') 

想我得到了一堆名單中運行上面的代碼後:如何從列表中創建列表?

['a','b','c']['1','2','3']['A','B','C'] 

我怎麼能得到另一個列表

['a','1','A']['b','2','B']['c','3','C'] 

從列表,而不是直接創造的呢?

+0

您是否總是希望第一個元素位於名單? – Arc676

+0

@ Arc676其實我想知道如何將列表轉換爲['a','1','A'] ['b','2','B'] ['c','3',' C'] – Chrisiicandy

+0

你應該在你的文章中包含這類信息。你可以[編輯]這樣做。 – Arc676

回答

2

假設所有列表有相同數量的元素

my_lists = [my_list_1, my_list2, ...] 
for i in xrange(len(my_lists[0])): 
    print [l[i] for l in my_lists] 

一個例子的...

>>> my_lists = [['a','b','c'],['1','2','3'],['A','B','C']] 
>>> for i in xrange(len(my_lists[0])): 
...  print [l[i] for l in my_lists] 
... 
['a', '1', 'A'] 
['b', '2', 'B'] 
['c', '3', 'C'] 
+0

相關文檔:https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions – Arc676

+0

@Chrisiicandy如果您的問題得到解決,或者接近您的問題,您可以接受/ upvote答案一個決議。從[這裏](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work),「接受答案是重要的,因爲它既獎勵海報解決你的問題,並告知其他人你的問題解決了。「 –

+0

@DebosmitRay kk – Chrisiicandy

2

你可以使用

all_list = [['a','b','c'],['1','2','3'],['A','B','C']] 
result = [x[0] for x in all_list] 
print(result) 

這就是所謂的列表理解在Python。

爲了您的需要,您應該使用zip函數在這裏,link由@ Arc676給出。

all_list = [['a','b','c'],['1','2','3'],['A','B','C']] 
# result = list(zip(all_list[0], all_list[1], all_list[2])) 
# if you have more list in all_list, you could use this 
result = list(zip(*all_list)) 
print(result) 
+0

相關文檔:https://docs.python.org/2/library/functions.html#zip – Arc676

+0

all_list = [['a','b','c'] ['1','2', '3'] [ 'A', 'B', 'C']]'?這不會編譯。 –

+0

@DebosmitRay對不起,您應該在我的手機中添加逗號,我忘了添加它。 – danche

0

你可以嘗試下面的東西。

var aggregateList = line_lst.map(function (value) { return value[0]; }); 

編輯:哎呀,我還以爲是在JavaScript部分,爲蟒蛇:

aggregateList = map(lambda value: value[0], line_lst) 
0

這應該這樣做...但它真的只是從每個列表中獲得第一項的,所以我不敢肯定,如果這是你想要

new_list = [] 
for sub_list in line_lst: 
    new_list.append(sub_list[0]) 

你也可以做到這一點(我更喜歡)

什麼210
0

剛:

zip(['a','b','c'], ['1','2','3'], ['A','B','C']) 

其中給出:

[ ('一個', ' ('''','B'),('c','3','C')]