software - python tutorial
ट्यूपल्स की सूची को सूची में बदलें? (8)
@ लेवोन समाधान आपके मामले के लिए पूरी तरह से काम करता है।
साइड नोट के रूप में, यदि आपके पास ट्यूपल्स में वेरिएबल संख्या है, तो आप itertools
से chain
उपयोग भी कर सकते हैं।
>>> a = [(1, ), (2, 3), (4, 5, 6)]
>>> from itertools import chain
>>> list(chain(a))
[(1,), (2, 3), (4, 5, 6)]
>>> list(chain(*a))
[1, 2, 3, 4, 5, 6]
>>> list(chain.from_iterable(a)) # More efficient version than unpacking
[1, 2, 3, 4, 5, 6]
मैं कैसे परिवर्तित करूं
[(1,), (2,), (3,)]
सेवा मेरे
[1, 2, 3]
आप निम्न प्रकार से sum
समारोह का उपयोग कर सकते हैं:
e = [(1,), (2,), (3,)]
e_list = list(sum(e, ()))
और यह एकल सूची में बदलने के लिए सूचियों की सूची के साथ भी काम करता है, लेकिन आपको इसका पालन करने की आवश्यकता होगी:
e = [[1, 2], [3, 4], [5, 6]]
e_list = list(sum(e, []))
यह आपको [1, 2, 3, 4, 5, 6]
ऑपरेटर या योग का उपयोग करना
>>> import operator
>>> a = [(1,), (2,), (3,)]
>>> list(reduce(operator.concat, a))
[1, 2, 3]
(या)
>>> list(sum(a,()))
[1, 2, 3]
>>>
तुम भी सूची समझ में tuple खोल सकते हैं:
e = [(1,), (2,), (3,)]
[i for (i,) in e]
अभी भी देंगे:
[1, 2, 3]
हमेशा किसी अन्य सूची से ... के for
... in
एक सूची निकालने का एक तरीका है। इस मामले में यह होगा:
[i[0] for i in e]
>>> a = [(1,), (2,), (3,)]
>>> b = map(lambda x: x[0], a)
>>> b
[1, 2, 3]
Python3 के साथ, आपको सूची (..) फ़ंक्शन को मैप के आउटपुट (..) पर रखना होगा, अर्थात
b = list(map(lambda x: x[0], a))
पायथन में निर्मित कार्यों का उपयोग करके एक पंक्ति में यह सबसे अच्छा समाधान है।
>>> a = [(1,), (2,), (3,)]
>>> zip(*a)[0]
(1, 2, 3)
एक सूची के लिए:
>>> list(zip(*a)[0])
[1, 2, 3]