Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python: संख्याओं से समान अंक वाले टपल्स बनाना (Equidigit tuples)

Python में प्रत्येक संख्या को दो भागों में विभाजित करके समान अंक वाले टपल्स (equidigit tuples) बनाए जा सकते हैं। यदि अंकों की संख्या विषम है, तो पहला भाग बड़ा होता है।

एल्गोरिदम

  1. संख्या को स्ट्रिंग में बदलें
  2. मध्य इंडेक्स खोजें: len(str(num)) // 2
  3. स्ट्रिंग स्लाइसिंग से दो भाग बनाएं
  4. दोनों भागों को पूर्णांक में बदलकर टपल बनाएं

उदाहरण

my_list = [5613, 1223, 966143, 890, 65, 10221]
print("मूल सूची:", my_list)

my_result = []
for num in my_list:
    num_str = str(num)
    mid_index = len(num_str) // 2
    
    # पहला भाग: शुरुआत से मध्य तक
    part1 = num_str[:mid_index]
    # दूसरा भाग: मध्य से अंत तक
    part2 = num_str[mid_index:]
    
    # पूर्णांक में बदलकर टपल बनाएं
    my_result.append((int(part1), int(part2)))

print("परिणामी टपल्स:", my_result)

आउटपुट

मूल सूची: [5613, 1223, 966143, 890, 65, 10221]
परिणामी टपल्स: [(56, 13), (12, 23), (966, 143), (8, 90), (6, 5), (10, 221)]

व्याख्या

संख्यास्ट्रिंगलंबाईमध्यभाग 1भाग 2टपल
5613"5613"42"56""13"(56, 13)
1223"1223"42"12""23"(12, 23)
966143"966143"63"966""143"(966, 143)
890"890"31"8""90"(8, 90)
65"65"21"6""5"(6, 5)
10221"10221"52"10""221"(10, 221)

संक्षिप्त संस्करण (List Comprehension)

my_list = [5613, 1223, 966143, 890, 65, 10221]

result = [
    (int(str(num)[:len(str(num))//2]), int(str(num)[len(str(num))//2:]))
    for num in my_list
]
print(result)  # [(56, 13), (12, 23), (966, 143), (8, 90), (6, 5), (10, 221)]

फंक्शन के रूप में

def create_equidigit_tuples(numbers):
    """संख्याओं की सूची से समान अंक वाले टपल्स बनाएं"""
    result = []
    for num in numbers:
        s = str(num)
        mid = len(s) // 2
        result.append((int(s[:mid]), int(s[mid:])))
    return result

# उपयोग
numbers = [5613, 1223, 966143, 890, 65, 10221]
print(create_equidigit_tuples(numbers))

विविधताएं

1. स्ट्रिंग के रूप में रखें (पूर्णांक में न बदलें)

result_str = [(str(num)[:len(str(num))//2], str(num)[len(str(num))//2:]) for num in my_list]
print(result_str)  # [('56', '13'), ('12', '23'), ...]

2. विषम लंबाई के लिए अलग नियम (पहला भाग छोटा)

def split_balanced(num):
    s = str(num)
    mid = (len(s) + 1) // 2  # सीलिंग डिवीजन
    return (int(s[:mid]), int(s[mid:]))

print([split_balanced(n) for n in [123, 1234, 12345]])  # [(12, 3), (12, 34), (123, 45)]

3. पैडिंग के साथ (समान लंबाई के लिए)

def split_padded(num, width=4):
    s = str(num).zfill(width)  # बाईं ओर शून्य पैडिंग
    mid = width // 2
    return (int(s[:mid]), int(s[mid:]))

print([split_padded(n, 4) for n in [12, 123, 1234]])  # [(0, 12), (0, 123), (12, 34)]
  1. - पायथन प्रोग्राम: लिस्ट को स्ट्रिंग में बदलें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट इटरेबल दी गई है, जिसे स्ट्रिंग टाइप इटरेबल में बदलना है। दिए गए समस्या को हल करने के चार दृष्टिकोण हैं। आइए उन्हें एक-एक करके देखें। ब्रूट-फोर्स दृष्टिकोण उदाहरण def listToString(s): # खाली स्ट्रिंग इनिशियलाइज़ कर

  1. - पायथन प्रोग्राम: टपल्स की लिस्ट को डिक्शनरी में कन्वर्ट करना

    यहां एक टपल दी गई है, हमारा कार्य टपल्स को डिक्शनरी में कन्वर्ट करना है। इस समस्या को हल करने के लिए हम डिक्शनरी मेथड setdefault() का उपयोग करते हैं। इस मेथड के दो पैरामीटर्स हैं, पहले पैरामीटर को की और दूसरे को डिक्शनरी की वैल्यू में कन्वर्ट करने के लिए। Setdefault(key, value) एक फंक्शन है जो की को

  1. - 3D सूची बनाने के लिए पायथन प्रोग्राम

    समस्या विवरण 3D सूची का अर्थ 3D सरणी होता है। इस प्रोग्राम में हम पूर्णांक तत्वों के साथ 3D सरणी बनाते हैं। उदाहरण इनपुट: 3×3×2 [[1,1,1],[2,2,2],[3,3,3]], [[4,4,4],[5,5,5],[6,6,6]] एल्गोरिदम 3D सूची का क्रम दिया गया है। फॉर लूप का उपयोग करके सूची बनाएं और डेटा प्रिंट करें। उदाहरण कोड # 3D सूची