इस लेख में, हम दी गई संख्याओं की लिस्ट से संभव सबसे बड़ी संख्या ढूंढना सीखेंगे। हम समस्या हल करने के दो अलग-अलग तरीके देखेंगे। समस्या हल करने के लिए नीचे दिए गए चरणों का पालन करें:
- permutations विधि के लिए itertools मॉड्यूल इम्पोर्ट करें।
- संख्याओं के साथ लिस्ट और एक खाली लिस्ट इनिशियलाइज़ करें।
- लिस्ट के permutations पर पुनरावृति करें:
- सभी संयोजनों को जोड़ें और परिणाम को खाली लिस्ट में जोड़ें।
- max विधि और key के रूप में int का उपयोग करके परिणाम से अधिकतम संख्या ढूंढें।
- स्ट्रिंग को पूर्णांक में बदलें और प्रिंट करें।
उदाहरण
आइए कोड देखें:
# मॉड्यूल इम्पोर्ट करना import itertools # लिस्ट इनिशियलाइज़ करना numbers = [45, 35, 138, 43, 67] # परिणाम result = [] # permutations for permutation in itertools.permutations(str(number) for number in numbers): result.append(''.join(permutation)) # अधिकतम ढूंढना maximum = max(result, key=int) # अधिकतम प्रिंट करना print(int(maximum))
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा:
आउटपुट
67454335138
आइए समस्या हल करने का दूसरा तरीका देखें। हम sorted फ़ंक्शन का उपयोग करेंगे। कोड लिखने के लिए नीचे दिए गए चरणों का पालन करें:
- लिस्ट को sorted फ़ंक्शन में पास करें।
- get_key नामक एक फ़ंक्शन लिखें जो दो आर्गुमेंट स्वीकार करता है।
- यदि str(first) + str(second) > str(second) + str(first) तो -1 लौटाएं अन्यथा 1।
- जॉइन विधि का उपयोग करके लिस्ट के तत्वों को जोड़ें।
- पूर्णांक में बदलकर परिणाम प्रिंट करें।
चूंकि हम फ़ंक्शन को key के रूप में उपयोग कर रहे हैं, हमें इसे functools से cmp_to_key विधि का उपयोग करके key में बदलना होगा। आइए कोड देखें:
उदाहरण
from functools import cmp_to_key # लिस्ट इनिशियलाइज़ करना numbers = [45, 35, 138, 43, 67] def get_key(first, second): if str(first) + str(second) > str(second) + str(first): return -1 return 1 # परिणाम प्राप्त करना result = sorted(numbers, key=cmp_to_key(get_key)) # परिणाम जोड़ना result = "".join(str(integer) for integer in result) # परिणाम प्रिंट करना print(int(result))
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम मिलेगा:
आउटपुट
67454335138
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में बताएं।