यह itertools.chain
साथ किया जा सकता:
import itertools
l1 = [1, 2, 3, 4]
l2 = [5, 6, 7, 8]
for i in itertools.chain(l1, l2):
print(i, end = " ")
कौन सा प्रिंट होगा:
1 2 3 4 5 6 7 8
प्रलेखन के अनुसार, chain
निम्नलिखित है:
पुनरावर्तक बनाओ जो पहले इसे तब तक लागू करता है जब तक इसे निकाला नहीं जाता है ऑस्टेड, फिर अगले पुनरावर्तनीय तक पहुंच जाता है, जब तक कि सभी पुनरावृत्त समाप्त नहीं हो जाते हैं।
आप एक सूची में अपनी सूची है, तो itertools.chain.from_iterable
उपलब्ध है:
l = [l1, l2]
for i in itertools.chain.from_iterable(l):
print(i, end= " ")
कौन सा एक ही परिणाम प्राप्त होते हैं।
यदि आप इस के लिए एक मॉड्यूल आयात करने के लिए एक समारोह लिखने के लिए यह बहुत सीधी-सपाट है चाहते हैं:
def custom_chain(*it):
for iterab in it:
yield from iterab
यह अजगर 3, अजगर 2 के लिए की आवश्यकता है, बस yield
उन्हें वापस एक का उपयोग कर पाश:
def custom_chain(*it):
for iterab in it:
for val in iterab:
yield val
पिछले, उसके विस्तारित unpacking सामान्यीकरण के साथ अजगर 3.5
के अलावा, यह भी सूची शाब्दिक में खोल की अनुमति देता है:
for i in [*l1, *l2]:
print(i, end=' ')
हालांकि यह l1 + l2
से थोड़ा तेज है, फिर भी यह एक सूची बनाता है जिसे तब फेंक दिया जाता है; केवल अंतिम समाधान के रूप में इसके लिए जाओ।