पायथन में एक सूची आम तौर पर एक 1 डी सूची होती है जहां तत्वों को एक के बाद एक सूचीबद्ध किया जाता है। लेकिन एक 2D सूची में हमारे पास बाहरी सूची के अंदर नेस्टेड सूची है। इस लेख में हम देखेंगे कि किसी दी गई 1D सूची से 2D सूची कैसे बनाई जाती है। हम प्रोग्राम को 2D सूची के अंदर तत्वों की संख्या के लिए मान भी प्रदान करते हैं।
परिशिष्ट और अनुक्रमणिका का उपयोग करना
इस दृष्टिकोण में हम 2D सूची में प्रत्येक तत्व के माध्यम से लूप के लिए लूप बनाएंगे और इसे नई सूची बनाने के लिए एक इंडेक्स के रूप में उपयोग करेंगे। हम इंडेक्स वैल्यू को शून्य से शुरू करके और उस तत्व में जोड़ते रहते हैं जो हमें 2D सूची से प्राप्त होता है।
उदाहरण
# Given list
listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
# Length of 2D lists needed
len_2d = [ 2, 4]
#Declare empty new list
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 lis is: \n",res) उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
आउटपुट
The new 2D lis is: [[1, 2], [3, 4, 5, 6]]
इस्लाइस का उपयोग करना
islice फ़ंक्शन का उपयोग किसी दी गई सूची को 2D सूची द्वारा आवश्यक तत्वों की निश्चित संख्या के साथ स्लाइस करने के लिए किया जा सकता है। तो यहाँ सप्ताह 2डी सूची के प्रत्येक तत्व के माध्यम से देखा और उस मूल्य का उपयोग करें 2 मूल सूची का टुकड़ा करें। आइसलाइस फ़ंक्शन का उपयोग करने के लिए हमें itertools पैकेज की आवश्यकता है।
उदाहरण
from itertools import islice
# Given list
listA = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
# Length of 2D lists needed
len_2d = [ 3, 2]
# Use 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 lis is: \n",res) उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
आउटपुट
The new 2D lis is: [[['Sun', 'Mon', 'Tue'], ['Wed', 'Thu']]]