पायथन में एक सूची सामान्यतः 1D सूची होती है जहां तत्व एक के बाद एक सूचीबद्ध होते हैं। लेकिन 2D सूची में हमारे पास बाहरी सूची के अंदर नेस्टेड सूचियां होती हैं। इस लेख में हम देखेंगे कि दी गई 1D सूची से 2D सूची कैसे बनाई जाए। हम प्रोग्राम को 2D सूची के अंदर तत्वों की संख्या के मान भी प्रदान करते हैं।
append और इंडेक्स का उपयोग करके
इस दृष्टिकोण में हम 2D सूची में प्रत्येक तत्व के माध्यम से लूप करने के लिए एक फॉर लूप बनाते हैं और इसे नई सूची के लिए इंडेक्स के रूप में उपयोग करते हैं। हम इंडेक्स मान को शून्य से शुरू करके बढ़ाते रहते हैं और इसे 2D सूची से प्राप्त तत्व में जोड़ते हैं।
उदाहरण
# दी गई सूची
listA = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
# 2D सूचियों के लिए आवश्यक लंबाई
len_2d = [2, 4]
# खाली नई सूची घोषित करें
res = []
def convert(listA, len_2d):
idx = 0
for var_len in len_2d:
res.append(listA[idx: idx + var_len])
idx += var_len
convert(listA, len_2d)
print("The new 2D list is: \n", res)
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
[['Sun', 'Mon'], ['Tue', 'Wed', 'Thu', 'Fri']]
islice का उपयोग करके
islice फ़ंक्शन का उपयोग दी गई सूची को 2D सूची द्वारा आवश्यक तत्वों की निश्चित संख्या के साथ स्लाइस करने के लिए किया जा सकता है। तो यहां हम 2D सूची के प्रत्येक तत्व को देखते हैं और उस मान का उपयोग मूल सूची को स्लाइस करने के लिए करते हैं। islice फ़ंक्शन का उपयोग करने के लिए हमें itertools पैकेज की आवश्यकता होती है।
उदाहरण
from itertools import islice
# दी गई सूची
listA = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
# 2D सूचियों के लिए आवश्यक लंबाई
len_2d = [3, 2]
# islice का उपयोग करें
def convert(listA, len_2d):
res = iter(listA)
return [list(islice(res, i)) for i in len_2d]
res = [convert(listA, len_2d)]
print("The new 2D list is: \n", res)
उपरोक्त कोड चलाने से हमें निम्न परिणाम मिलता है:
आउटपुट
[[['Sun', 'Mon', 'Tue'], ['Wed', 'Thu']]]
नोट:
दूसरे उदाहरण में आउटपुट में एक अतिरिक्त नेस्टिंग स्तर है क्योंकि res = [convert(...)] का उपयोग किया गया है। सही उपयोग:
res = convert(listA, len_2d)
# परिणाम: [['Sun', 'Mon', 'Tue'], ['Wed', 'Thu']]