आइए एक सूची पर विचार करें जिसमें विभिन्न लंबाई के कई तार हों। इस लेख में हम देखेंगे कि उन तत्वों को उन समूहों में कैसे जोड़ा जाए जहां प्रत्येक समूह में तार समान लंबाई के हों।
लूप के साथ
हम एक लूप के लिए डिज़ाइन करते हैं जो सूची के प्रत्येक तत्व के माध्यम से पुनरावृति करेगा और इसे केवल उस सूची में हुआ जहां इसकी लंबाई मौजूदा तत्व की लंबाई से मेल खाती है।
उदाहरण
listA = ['Monday','Thursday','Friday','Saturday','Sunday']
# Given list
print("Given list : \n",listA)
# Categorize by string size
len_comp = lambda x, y: len(x) == len(y)
res = []
for sub_list in listA:
ele = next((i for i in res if len_comp(sub_list, i[0])), [])
if ele == []:
res.append(ele)
ele.append(sub_list)
# Result
print("The list after creating categories : \n",res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Given list : ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] The list after creating categories : [['Monday', 'Friday', 'Sunday'], ['Thursday', 'Saturday']]
क्रमबद्ध और समूह के अनुसार
इस दृष्टिकोण में हमने पहले सभी तत्वों को उनकी लंबाई के अनुसार शूट किया और फिर समूह को फ़ंक्शन द्वारा लागू किया जो कि itertools मॉड्यूल का हिस्सा है।
उदाहरण
from itertools import groupby
listA = ['Monday','Thursday','Friday','Saturday','Sunday']
# Given list
print("Given list : \n",listA)
# Categorize by string size
get_len = lambda x: len(x)
sub_list = sorted(listA, key = get_len)
res = [list(ele) for i, ele in groupby(sub_list, get_len)]
# Result
print("The list after creating categories : \n",res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Given list : ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] The list after creating categories : [['Monday', 'Friday', 'Sunday'], ['Thursday', 'Saturday']]