2016-04-14 18 views

उत्तर

10

का प्रयोग करें।

>>> l = [['x1','y1'], ['x2','y2']] 
>>> zip(*l) 
[('x1', 'x2'), ('y1', 'y2')] 
+0

@ भार्गव राव: क्या आप समझा सकते हैं कि '*' काम कर रहा है या कुछ लिंक जो '*' बताते हैं? –

+0

@ विवेक आप यहां '*' ऑपरेटर के बारे में अधिक जान सकते हैं https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists –

+2

इस तथ्य के अलावा कि यह प्रश्न विशेष रूप से 'ज़िप' से लाभान्वित है टुपल्स की एक सूची लौटते हुए, आमतौर पर 'ज़िप (* एक्स)' को 'एक्स' के मैट्रिक्स ट्रांसपोज़ के रूप में माना जा सकता है। जो उन लोगों के लिए उपयोगी है जिन्होंने बहुत सारे रैखिक बीजगणित किए हैं और इसलिए स्वाभाविक रूप से प्रश्नकर्ता के आवश्यक पुन: आदेश को पारदर्शिता के रूप में सोचते हैं। –

2

परीक्षण मामले देने में अधिक मामला संभाला।

यदि सूची में आइटम हैं जो अलग-अलग लंबाई हैं।

In [19]: a 
Out[19]: [[1, 2], [3, 4], [5, 6], [7, 8, 9]] 

In [20]: import itertools 

In [21]: b = itertools.izip_longest(*a) 

In [22]: list(b) 
Out[22]: [(1, 3, 5, 7), (2, 4, 6, 8), (None, None, None, 9)] 
+0

@ भार्गवराव: अद्यतन उत्तर, और किसने उत्तर दिया, जवाब भी दे सकता है और मुझे बता सकता है कि क्या कोई समस्या है :) –

संबंधित मुद्दे