2012-11-29 10 views
94

संभव डुप्लिकेट:
A Transpose/Unzip Function in Pythonपायथन में ज़िप का व्यस्त कार्य क्या है?

मैं tuples सॉर्ट करने के लिए numpy पुस्तकालय से जिप() फ़ंक्शन का उपयोग किया है और अब मैं सभी tuples युक्त एक सूची है। तब से मैंने उस सूची को संशोधित किया था और अब मैं tuples को पुनर्स्थापित करना चाहता हूं ताकि मैं अपने डेटा का उपयोग कर सकूं। मैं यह कैसे कर सकता हूँ?

उत्तर

213
lst1, lst2 = zip(*zipped_list) 

आपको अनजिप सूची देनी चाहिए।

*zipped_list zipped_list ऑब्जेक्ट को अनपैक करता है। यह तो ज़िप करने के लिए zipped_list वस्तु है, जो सिर्फ उन्हें वापस ऊपर के रूप में वे थे जब आप उन्हें में पारित पैक से सभी tuples गुजरता

इसलिए यदि:।

a = [1,2,3] 
b = [4,5,6] 

तो zipped_list = zip(a,b) आप देता है:

[(1,4), (2,5), (3,6)] 

और *zipped_list तुम वापस देता है

(1,4), (2,5), (3,6) 

ज़िपिंग कि zip(*zipped_list) आपको दो संग्रह वापस देता है:

[(1, 2, 3), (4, 5, 6)] 
+7

वाह, यह वास्तव में अच्छा लगता है। – Merlin

+7

दूसरे शब्दों में 'lambda x: ज़िप (* x)' स्वयं-विपरीत है। – jwg

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