2016-11-09 33 views
2

我有三個列表:如何將三個列表按字典或JSON等形式合併爲一個列表? Python的

imglist=['1.jpg', '12.jpg'] 
classlist=['class1', 'class5'] 
sentencelist=['Good for health.', 'Good luck.'] 

如何將列表分爲以下格式結合?

[ ['1.jpg','class1','Good for health.'], 
['12.jpg','class5','Good luck.']] 

或者如果你知道如何將列表結合爲字典或JSON格式?如

[{'img':'1.jpg','class':'class1','sentence':'Good for health.'}, 
{'img':'12.jpg','class':'class5','sentence':'Good luck'}] 

回答

4

使用zip()到列表的結合:

>>> imglist=['1.jpg', '12.jpg'] 
>>> classlist=['class1', 'class5'] 
>>> sentencelist=['Good for health.', 'Good luck.'] 

# combining list 
>>> zip(imglist, classlist, sentencelist) 
[('1.jpg', 'class1', 'Good for health.'), ('12.jpg', 'class5', 'Good luck.')] 

其轉換到你的格式dict,使用zip列表理解爲:

>>> key_list = ["img", "class", "sentence"] 
>>> my_zipped_list = zip(imglist, classlist, sentencelist) # same list as above example 

>>> [dict(zip(key_list, zipped_element)) for zipped_element in my_zipped_list] 
[{'class': 'class1', 'img': '1.jpg', 'sentence': 'Good for health.'}, 
{'class': 'class5', 'img': '12.jpg', 'sentence': 'Good luck.'}] 
+0

非常感謝!這是有幫助的 – bob90937

0

你可以使用從itertools packa中建立的zip()izip()方法GE。

from itertools import izip 
for i, j in izip(handle1, handle2): 
    ... 
相關問題