Python का उपयोग करके डेटा का विश्लेषण या प्रसंस्करण करते समय, हम ऐसी स्थितियों का सामना करते हैं जहां दी गई सूची को अलग-अलग कॉलम वाली सूचियाँ प्राप्त करने के लिए पुनर्मॉडल या रीशेप करना पड़ता है। हम इसे नीचे चर्चा किए गए कई दृष्टिकोणों से प्राप्त कर सकते हैं।
स्लाइसिंग का उपयोग करना
हम सूची को कुछ तत्वों पर काटकर कॉलम संरचना बना सकते हैं। यहाँ हम दी गई सूची को एक नई सूची में बदलते हैं जहां तत्व मध्य से विभाजित होते हैं। हम दो for लूप का उपयोग करते हैं। बाहरी वाला तत्वों को शून्यवें तत्व से दूसरे तत्व तक विभाजित करता है और आंतरिक वाला दूसरे तत्व से अंतिम तक।
उदाहरण
x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]]
# सूची स्लाइसिंग और सूची समझ का उपयोग
print("दिया गया इनपुट है : \n" + str(x))
result = [m for y in [[n[2:], [n[0:2]]] for n in x] for m in y]
print("कॉलम को सूची की सूची में अलग तत्वों में बदलना : \n" + str(result))
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
दिया गया इनपुट है : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] कॉलम को सूची की सूची में अलग तत्वों में बदलना : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]
itertools.chain() और सूची समझ
दो for लूप के बजाय हम itertools से chain विधि का भी उपयोग कर सकते हैं। सूची समझ का उपयोग करके हम उपरोक्त समान तर्क लागू करते हैं और दिए गए सूची के मध्य में कॉलम विभाजित करके परिणाम प्राप्त करते हैं।
उदाहरण
from itertools import chain
x = [[5,10,15,20],[25,30,35,40],[45,50,55,60]]
# सूची स्लाइसिंग और सूची समझ का उपयोग
print("दिया गया इनपुट है : \n" + str(x))
res = list(chain(*[list((n[2:], [n[0:2]])) for n in x]))
print("कॉलम को सूची की सूची में अलग तत्वों में बदलना : \n" + str(res))
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
दिया गया इनपुट है : [[5, 10, 15, 20], [25, 30, 35, 40], [45, 50, 55, 60]] कॉलम को सूची की सूची में अलग तत्वों में बदलना : [[15, 20], [[5, 10]], [35, 40], [[25, 30]], [55, 60], [[45, 50]]]