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

Python: टपल्स की सूची में सभी तत्व समान हैं या नहीं जांचना

Python में टपल्स की सूची में जांचना कि क्या सभी टपल्स में केवल एक ही अद्वितीय मान है (सभी तत्व समान), इसके लिए set() और all() का उपयोग किया जा सकता है।

समस्या

दिया गया: [(72, 72, 72), (72, 72), (72, 72)] - क्या सभी टपल्स में केवल 72 है?

सरल और पायथनिक तरीका

my_list = [(72, 72, 72), (72, 72), (72, 72)]
print("मूल सूची:", my_list)

# विधि 1: all() + set() - सबसे पायथनिक
result = all(len(set(t)) == 1 for t in my_list)
print(f"सभी टपल्स में समान तत्व? {result}")  # True

# विधि 2: पहला तत्व लेकर बाकी से तुलना
first_val = my_list[0][0] if my_list else None
result2 = all(all(elem == first_val for elem in t) for t in my_list)
print(f"विधि 2: {result2}")  # True

आउटपुट

मूल सूची: [(72, 72, 72), (72, 72), (72, 72)]
सभी टपल्स में समान तत्व? True
विधि 2: True

मूल लेख की विधि (फ्लैग वेरिएबल के साथ)

# मूल लेख का दृष्टिकोण (अधिक वर्बोज)
my_list = [(72, 72, 72), (72, 72), (72, 72)]
my_result = True

for sub in my_list:
    flag = True
    for element in sub:
        if element != my_list[0][0]:
            flag = False
            break
    if not flag:
        my_result = False
        break

if my_result:
    print("सभी टपल्स में एक ही तत्व है")
else:
    print("टपल्स में अलग-अलग तत्व हैं")

विविधताएं और किनारे के मामले

1. खाली सूची / खाली टपल्स

# खाली सूची
print(all(len(set(t)) == 1 for t in []))  # True (vacuously true)

# खाली टपल्स वाली सूची
print(all(len(set(t)) == 1 for t in [(), (), ()]))  # False (len(set()) = 0)

# मिश्रित
print(all(len(set(t)) == 1 for t in [(1,1), (), (2,2)]))  # False

2. कौन सा मान सामान्य है, यह भी जानना

def check_single_element_value(nested_list):
    """सभी टपल्स में समान तत्व हो तो वह मान लौटाएं, वरना None"""
    if not nested_list:
        return None
    
    # पहला गैर-खाली टपल खोजें
    first_val = None
    for t in nested_list:
        if t:
            first_val = t[0]
            break
    
    if first_val is None:
        return None  # सभी टपल्स खाली हैं
    
    # जांचें कि सभी तत्व first_val के बराबर हैं
    if all(all(elem == first_val for elem in t) for t in nested_list):
        return first_val
    return None

print(check_single_element_value([(72, 72), (72,)]))      # 72
print(check_single_element_value([(72, 72), (73,)]))      # None
print(check_single_element_value([(1,), (1, 1), (1,)]))   # 1
print(check_single_element_value([]))                      # None

3. NumPy के साथ (बड़े डेटा के लिए)

import numpy as np

# 2D सरणी में बदलें (यदि सभी उप-सूचियाँ समान लंबाई की हों)
arr = np.array([[72, 72, 72], [72, 72, 72], [72, 72, 72]])
# प्रत्येक पंक्ति के सभी तत्व समान?
row_uniform = np.all(arr == arr[:, 0:1], axis=1)
all_uniform = np.all(row_uniform)
print(f"NumPy: {all_uniform}")  # True

# असमान लंबाई के लिए - ऑब्जेक्ट सरणी
arr_obj = np.array([(72, 72, 72), (72, 72), (72,)], dtype=object)
result = all(len(set(t)) == 1 for t in arr_obj)
print(f"ऑब्जेक्ट सरणी: {result}")

4. Counter का उपयोग (आवृत्ति गिनने के लिए)

from collections import Counter

# सभी टपल्स को मिलाकर गिनें
all_elements = [elem for t in my_list for elem in t]
counts = Counter(all_elements)
print(f"तत्व आवृत्ति: {counts}")  # Counter({72: 7})

# केवल एक अद्वितीय तत्व?
print(f"एक ही तत्व? {len(counts) == 1}")

सारांश

विधिपठनीयताप्रदर्शनखाली टपल्स हैंडलिंग
all(len(set(t))==1 for t in lst)उच्चअच्छाखाली टपल्स → False
all(all(e==first for e in t) for t in lst)मध्यमअच्छाखाली टपल्स → True
फ्लैग वेरिएबल (मूल)कमधीमामैन्युअल हैंडलिंग
NumPyमध्यमसबसे तेज़ (बड़े डेटा)आकार निश्चित होना चाहिए
  1. - पायथन में सूची में तत्वों की पुनरावृत्ति

    ऐसे परिदृश्य होते हैं जब हमें सूची में मानों को दोहराने की आवश्यकता होती है। मानों का यह दोहराव पायथन में निम्नलिखित तरीकों से प्राप्त किया जा सकता है। नेस्टेड फॉर लूप का उपयोग यह एक सीधा दृष्टिकोण है जिसमें प्रत्येक तत्व को चुनते हैं, इसके डुप्लिकेट बनाने के लिए आंतरिक फॉर लूप से गुजरते हैं और फिर

  1. - पायथन प्रोग्राम: लिस्ट में एलिमेंट्स गिनना जब तक एलिमेंट टपल न हो

    A एक दी गई लिस्ट है। इस लिस्ट में नेस्टेड टपल्स हैं। हमारा कार्य लिस्ट में एलिमेंट्स को तब तक गिनना है जब तक कोई एलिमेंट टपल न हो। यहां हम isinstance() फंक्शन का उपयोग करते हैं। इस फंक्शन के दो पैरामीटर्स हैं ऑब्जेक्ट और क्लासइन्फो। ऑब्जेक्ट चेक किया जाने वाला है और क्लासइन्फो क्लास, टाइप या क्लास औ

  1. - Python टपल एलिमेंट मान कैसे अपडेट करें?

    Python टपल एक इम्यूटेबल ऑब्जेक्ट है। इसलिए इसे अपडेट करने का प्रयास करने वाला कोई भी ऑपरेशन अनुमति नहीं है। हालांकि, निम्न वर्कअराउंड का उपयोग किया जा सकता है। पहले, बिल्ट-इन फंक्शन `list()` द्वारा टपल को लिस्ट में बदलें। आप लिस्ट ऑब्जेक्ट में किसी आइटम को निश्चित इंडेक्स पर नया मान असाइन करके हमेश