आप इस कोशिश कर सकते:
In [9]: l = [[3,7,2],[1,4,5],[9,8,7]]
In [10]: [sum(i) for i in zip(*l)]
Out[10]: [13, 19, 14]
यह zip
और *
के संयोजन का उपयोग सूची अनपैक करने के लिए और फिर अपने सूचकांक के अनुसार आइटम ज़िप। फिर आप समान सूचकांक के समूहों के माध्यम से पुनरावृत्ति करने और उनकी 'मूल' स्थिति में लौटने के लिए एक सूची समझ का उपयोग करते हैं।
उम्मीद है कि यह थोड़ा और अधिक स्पष्ट करने के लिए यहां क्या होता है जब आप zip(*l)
के माध्यम से पुनरावृति है:
In [13]: for i in zip(*l):
....: print i
....:
....:
(3, 1, 9)
(7, 4, 8)
(2, 5, 7)
सूचियों कि असमान लंबाई के हैं, के मामले में आप 0
के fillvalue
साथ itertools.izip_longest
उपयोग कर सकते हैं - इस मूल रूप से 0
साथ लापता सूचकांक भरता है, आप सभी 'कॉलम' योग करने के लिए अनुमति देता है:
In [1]: import itertools
In [2]: l = [[3,7,2],[1,4],[9,8,7,10]]
In [3]: [sum(i) for i in itertools.izip_longest(*l, fillvalue=0)]
Out[3]: [13, 19, 9, 10]
इस मामले में, यहाँ हैसे अधिक क्या बार-बार दोहरानालगेगा जैसे:
In [4]: for i in itertools.izip_longest(*l, fillvalue=0):
...: print i
...:
(3, 1, 9)
(7, 4, 8)
(2, 0, 7)
(0, 0, 10)
[आपने क्या प्रयास किया है?] (Http://whathaveyoutried.com/) –