Python میں ایک فہرست میں عناصر کو شفل کریں۔

کاروبار

اگر آپ Python میں فہرست (سرنی) کے عناصر کو شفل (تصادفی طور پر ترتیب دینا) چاہتے ہیں، تو معیاری لائبریری کا بے ترتیب ماڈیول استعمال کریں۔

دو فنکشنز ہیں: شفل()، جو تصادفی طور پر اصل فہرست کو ترتیب دیتا ہے، اور نمونہ()، جو تصادفی طور پر ترتیب دی گئی نئی فہرست کو لوٹاتا ہے۔ نمونہ () تار اور ٹوپلس کے لیے استعمال کیا جا سکتا ہے۔

  • اصل فہرست کو شفل کریں۔: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