2011-08-03 6 views
5

ठीक है, तो मैं दो सूचियों कि इससूचियों की सूची में ज़िप करने का कोई तरीका?

listx = [2, 4, 5, 9, 11] 
listy = [3, 5, 9, 12, 14] 

की तरह अभी देखो है, जब मैं ज़िप करते हैं, मैं इस

listz = zip(listx, listy) 
listz = [(2,3), (4,5), (5,9), (9, 12), (11,14)] 

वहाँ के बजाय सूचियों में से यह एक सूची बनाने के लिए कोई तरीका है एक सरणी की तरह,

listz = [[2,3], [4,5], [5,9], [9,12], [11,14]] 

धन्यवाद!

+3

आपको टुपल्स की सूची के बजाय सूचियों की सूची होने की आवश्यकता क्यों है? –

+1

मुझे लगता है कि वह उन्हें किसी भी तरह से बदलना चाहता है। – kindall

उत्तर

6

तुम एक समझ का उपयोग कर सकते

listz = (list(i) for i in zip(listx, listy)) 
2

एक सूची समझ का उपयोग करें, और मध्यस्थ सूची बनाने से बचने के लिए izip का उपयोग करें।

listz = [list(i) for i in zip(listx, listy)] 

या जनरेटर अभिव्यक्ति:

import itertools 

listz = [list(z) for z in itertools.izip(listx, listy)] 
+3

बस ध्यान के लिए, पायथन 3+ पर, ज़िप फ़ंक्शन जनरेटर लौटाता है, फिर izip की आवश्यकता नहीं होती है। – utdemir

+0

हां, अच्छा बिंदु। – kindall

0
>>> from itertools import izip, imap 
>>> listx = [2, 4, 5, 9, 11] 
>>> listy = [3, 5, 9, 12, 14] 
>>> listz = list(imap(list, izip(listx, listy))) 
>>> listz 
[[2, 3], [4, 5], [5, 9], [9, 12], [11, 14]] 
5

उपयोग map सूची में tuples कन्वर्ट करने के लिए।

map(list, zip(listx, listy))