पाइथनमा सूचीमा तत्वहरू फेरबदल गर्नुहोस्

व्यापार

यदि तपाइँ पाइथनमा सूची (एरे) को तत्वहरू फेरबदल (अनियमित रूपमा क्रमबद्ध) गर्न चाहनुहुन्छ भने, मानक पुस्तकालयको अनियमित मोड्युल प्रयोग गर्नुहोस्।

त्यहाँ दुई प्रकार्यहरू छन्: shuffle(), जसले अनियमित रूपमा मूल सूचीलाई क्रमबद्ध गर्दछ, र नमूना (), जसले नयाँ अनियमित रूपमा क्रमबद्ध सूची फर्काउँछ। नमूना() स्ट्रिङ र टपल्सका लागि प्रयोग गर्न सकिन्छ।

  • मूल सूची फेरबदल गर्नुहोस्:random.shuffle()
  • नयाँ, फेरबदल सूची उत्पन्न गर्नुहोस्।:random.sample()
  • स्ट्रिङ र टपलहरू फेरबदल गर्नुहोस्
  • अनियमित संख्या बीज ठीक गर्नुहोस्

यदि तपाईं अनियमित क्रमको सट्टा आरोही वा घट्दो क्रममा क्रमबद्ध गर्न चाहनुहुन्छ भने, निम्न लेख हेर्नुहोस्।

मूल सूची फेरबदल गर्नुहोस्:random.shuffle()

अनियमित मोड्युलमा प्रकार्य shuffle() ले अनियमित रूपमा मूल सूची क्रमबद्ध गर्न सक्छ।

import random

l = list(range(5))
print(l)
# [0, 1, 2, 3, 4]

random.shuffle(l)
print(l)
# [1, 0, 4, 3, 2]

नयाँ, फेरबदल सूची उत्पन्न गर्नुहोस्।:random.sample()

अनियमित मोड्युलमा भएको प्रकार्य नमूना() मूल सूची परिवर्तन नगरी अनियमित रूपमा क्रमबद्ध गरिएको नयाँ सूची सिर्जना गर्न प्रयोग गर्न सकिन्छ।

नमूना () एक प्रकार्य हो जसले अनियमित रूपमा सूचीबाट एक तत्व चयन गर्दछ र पुन: प्राप्त गर्दछ। पहिलो तर्क एउटा सूची हो, र दोस्रो तर्क पुन: प्राप्त गर्न तत्वहरूको संख्या हो। विवरणका लागि निम्न लेख हेर्नुहोस्।

यदि नमूना () द्वारा चयन गरिने तत्वहरूको संख्या सूचीमा तत्वहरूको कुल संख्या हो भने, हामी सबै तत्वहरू अनियमित रूपमा क्रमबद्ध गरिएको नयाँ सूची प्राप्त गर्छौं। सूचीमा तत्वहरूको कुल संख्या len() द्वारा प्राप्त गरिन्छ।

मूल वस्तु परिवर्तन गरिने छैन।

l = list(range(5))
print(l)
# [0, 1, 2, 3, 4]

lr = random.sample(l, len(l))
print(lr)
# [0, 3, 1, 4, 2]

print(l)
# [0, 1, 2, 3, 4]

स्ट्रिङ र टपलहरू फेरबदल गर्नुहोस्

स्ट्रिङहरू र ट्युपलहरू अपरिवर्तनीय छन्, त्यसैले यदि तपाईंले मूल वस्तु परिवर्तन गर्न random.shuffle() प्रयोग गर्नुभयो भने, तपाईंले निम्न त्रुटि पाउनुहुनेछ।
TypeError

s = 'abcde'

# random.shuffle(s)
# TypeError: 'str' object does not support item assignment

t = tuple(range(5))
print(t)
# (0, 1, 2, 3, 4)

# random.shuffle(t)
# TypeError: 'tuple' object does not support item assignment

यदि तपाइँ स्ट्रिङ वा टपल फेरबदल गर्न चाहनुहुन्छ भने, random.sample() प्रयोग गर्नुहोस्, जसले नयाँ वस्तु सिर्जना गर्दछ।

स्ट्रिङ वा ट्युपललाई आर्गुमेन्टको रूपमा निर्दिष्ट गर्दा पनि, random.sample() ले सूची फर्काउँछ, त्यसैले यसलाई स्ट्रिङ वा ट्युपलमा फिर्ता प्रशोधन गर्न आवश्यक हुन्छ।

स्ट्रिङको मामलामा, यो एक-एक गरेर क्यारेक्टरहरूको सूची हुनेछ। तिनीहरूलाई फेरि एकल स्ट्रिङमा जोड्न, join() विधि प्रयोग गर्नुहोस्।

sr = ''.join(random.sample(s, len(s)))
print(sr)
# bedca

tuples को लागी, tuple() को प्रयोग गर्नुहोस्, जसले सूचीबाट टपल सिर्जना गर्दछ।

tr = tuple(random.sample(t, len(l)))
print(tr)
# (0, 1, 2, 4, 3)

अनियमित संख्या बीज ठीक गर्नुहोस्

यादृच्छिक मोड्युलको प्रकार्य बीज() लाई एक स्वेच्छाचारी पूर्णांक दिएर, अनियमित संख्याको बीज फिक्स गर्न सकिन्छ र अनियमित संख्या जनरेटर सुरु गर्न सकिन्छ।

एउटै बीउ संग प्रारम्भ पछि, यो सधैं उही तरिकामा पुन: क्रमबद्ध हुन्छ।

l = list(range(5))
random.seed(0)
random.shuffle(l)
print(l)
# [2, 1, 0, 4, 3]

l = list(range(5))
random.seed(0)
random.shuffle(l)
print(l)
# [2, 1, 0, 4, 3]
Copied title and URL