आइए एक सूची पर विचार करें जिसमें अलग-अलग लंबाई के कई स्ट्रिंग हैं। इस लेख में हम देखेंगे कि उन तत्वों को समूहों में कैसे क्लब किया जाए जहां प्रत्येक समूह में स्ट्रिंग समान लंबाई के हों।
फॉर लूप के साथ
हम एक फॉर लूप डिज़ाइन करते हैं जो सूची के प्रत्येक तत्व के माध्यम से पुनरावृति करेगा और उसे केवल उस सूची में जोड़ेगा जहां उसकी लंबाई मौजूदा तत्व की लंबाई से मेल खाती है।
उदाहरण
listA = ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
# दी गई सूची
print("Given list : \n", listA)
# स्ट्रिंग आकार के अनुसार वर्गीकृत करें
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)
# परिणाम
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']]
सॉर्ट और ग्रुपबाय के साथ
इस दृष्टिकोण में हम पहले सभी तत्वों को उनकी लंबाई के अनुसार सॉर्ट करते हैं और फिर इटरटूल्स मॉड्यूल के हिस्से ग्रुपबाय फ़ंक्शन को लागू करते हैं।
उदाहरण
from itertools import groupby
listA = ['Monday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
# दी गई सूची
print("Given list : \n", listA)
# स्ट्रिंग आकार के अनुसार वर्गीकृत करें
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)]
# परिणाम
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']]