وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش انتخاب تصادفی عناصر از لیست در پایتون

0 87
زمان لازم برای مطالعه: 3 دقیقه


معرفی

انتخاب یک عنصر یا مقدار تصادفی از یک لیست یک کار رایج است – چه برای نتایج تصادفی از فهرستی از توصیه‌ها یا فقط یک درخواست تصادفی.

در این مقاله نگاهی خواهیم داشت روش انتخاب تصادفی عناصر از لیست در پایتون. ما بازیابی هر دو عنصر تصادفی منفرد و همچنین بازیابی عناصر متعدد – با و بدون تکرار را پوشش خواهیم داد.

انتخاب یک عنصر تصادفی از لیست پایتون

بصری ترین و طبیعی ترین رویکرد برای حل این مشکل، تولید یک عدد تصادفی است که به عنوان یک شاخص برای دسترسی به یک عنصر از لیست عمل می کند.

برای پیاده سازی این رویکرد، اجازه دهید به چند روش برای تولید اعداد تصادفی در پایتون نگاه کنیم: random.randint() و random.randrange(). علاوه بر این می توانیم استفاده کنیم random.choice() و یک تکرار پذیر ارائه کنید – که منجر به بازگشت یک عنصر تصادفی از آن تکرارپذیر می شود.

استفاده کردن random.randint()

random.randint(a, b) یک عدد صحیح تصادفی بین را برمی گرداند a و b شامل.

ما شاخص تصادفی را در محدوده می خواهیم 0 به len(list)-1، برای به دست آوردن یک شاخص تصادفی از یک عنصر در لیست:

import random

letters = ('a', 'b', 'c', 'd', 'e', 'f')
random_index = random.randint(0,len(letters)-1)

print(letters(random_index))

اجرای چندین بار این کد به ما نتیجه می دهد:

e
c
f
a

استفاده کردن random.randrange()

random.randrange(a) روش دیگری است که یک عدد تصادفی را برمی گرداند n به طوری که 0 <= n < a:

import random

letters = ('a', 'b', 'c', 'd', 'e', 'f')
random_index = random.randrange(len(letters))

print(letters(random_index))

اجرای چندباره این کد، چیزی در مسیر زیر تولید می کند:

f
d
d
e

مانند random.randrange(len(letters)) یک عدد به طور تصادفی تولید شده در محدوده را برمی گرداند 0 به len(letters) - 1، از آن برای دسترسی تصادفی به یک عنصر استفاده می کنیم letters، درست مانند روش قبلی.

پیشنهاد می‌کنیم بخوانید:  نحوه استفاده از Rarible: راه آسان برای تنظیم نمایه کاربر

این رویکرد کمی ساده‌تر از روش قبلی است، فقط به این دلیل که ما نقطه شروع را مشخص نمی‌کنیم، که به طور پیش‌فرض 0.

استفاده کردن random.choice()

در حال حاضر، حتی یک راه حل بهتر از قبل، استفاده از آن خواهد بود random.choice() زیرا این دقیقاً تابعی است که برای حل این مشکل طراحی شده است:

import random 

letters = ('a', 'b', 'c', 'd', 'e', 'f')

print(random.choice(letters))

اجرای چندباره این باعث می شود:

b
e
e
f
e

انتخاب بیش از یک عنصر تصادفی از لیست پایتون

استفاده کردن نمونه اتفاقی()

اولین روشی که می توانیم از آن برای انتخاب تصادفی بیش از یک عنصر استفاده کنیم این است random.sample(). این یک نمونه تولید می کند، بر اساس روی چند نمونه را می خواهیم مشاهده کنیم:

import random 

letters = ('a', 'b', 'c', 'd', 'e', 'f')

print(random.sample(letters, 3))

این یک لیست را برمی گرداند:

('d', 'c', 'a')

این روش عناصر را بدون جایگزینی انتخاب می کند، یعنی بدون تکرار و تکرار انتخاب می کند.

اگر این را اجرا کنیم:

print(random.sample(letters, len(letters)))

از آنجایی که موارد تکراری را بر نمی گرداند، فقط کل لیست ما را به ترتیب تصادفی برمی گرداند:

('a', 'e', 'c', 'd', 'f', 'b')

استفاده کردن random.choices()

مشابه عملکرد قبلی، random.choices() لیستی از عناصر انتخاب شده به طور تصادفی را از یک تکرار معین برمی گرداند. اگرچه، عناصر انتخاب شده را ردیابی نمی کند، بنابراین می توانید عناصر تکراری را نیز دریافت کنید:

import random 

letters = ('a', 'b', 'c', 'd', 'e', 'f')

print(random.choices(letters, k=3))

این چیزی را در امتداد خطوط زیر برمی گرداند:

('e', 'f', 'f')

همچنین اگر اجرا کنیم:

print(random.choices(letters, k = len(letters)))

می تواند چیزی شبیه به:

('d', 'e', 'b', 'd', 'd', 'd')

random.choices برمی گرداند a kلیست اندازه عناصر به طور تصادفی با جایگزینی انتخاب شده است.

پیشنهاد می‌کنیم بخوانید:  در Vue با اجزای قابل استفاده مجدد به بالا بروید تا تجربه کاربر را بهبود ببخشید روی هر وب سایتی با محتوای زیاد روی در صفحات وب آن، برای توسعه دهندگان فرانت اند معمول است که یک عملکرد اسکرول به بالا را از طریق یک دکمه پیاده سازی کنند تا کارها برای کاربران لذت بخش تر و راحت تر شود. در حالی که کاربران می توانند از دستور + فلش بالا استفاده کنند روی آ...

این روش همچنین می تواند برای پیاده سازی انتخاب های تصادفی وزن دار مورد استفاده قرار گیرد که می توانید در ادامه به بررسی آنها بپردازید اسناد رسمی پایتون.

انتخاب تصادفی n عناصر بدون تکرار

اگر به دنبال ایجاد مجموعه های تصادفی از n عناصر، بدون تکرار، کار به ظاهر پیچیده تر از وظایف قبلی است، اما در عمل – بسیار ساده است.

شما shuffle() لیست و پارتیشن بندی آن n قطعات. این تضمین می کند که هیچ عنصر تکراری اضافه نمی شود، زیرا شما فقط لیست را برش می دهید، و ما آن را به هم ریخته ایم تا مجموعه ها تصادفی باشند.

اگر می خواهید درباره تقسیم یک لیست به تکه های تصادفی بیشتر بخوانید، نگاهی به – روش تقسیم یک لیست به تکه های زوج در پایتون بیندازید.

ما نتیجه را در یک لیست جدید ذخیره می کنیم، و اگر عناصر کافی برای قرار دادن مجموعه نهایی وجود نداشته باشد، به سادگی ناتمام خواهد بود:

import random

def select_random_Ns(lst, n):
    random.shuffle(lst)
    result = ()
    for i in range(0, len(lst), n):
        result.append(lst(i:i + n))
    return result
        
        
lst = (1, 2, 3, 4, 5, 6, 7, 8, 9)

print(select_random_Ns(lst, 2))

این منجر به لیستی از جفت های تصادفی، بدون تکرار می شود:

((8, 6), (3, 4), (5, 7), (9, 1), (2))

نتیجه

در این مقاله، ما چندین روش را برای بازیابی یک یا چند عنصر به طور تصادفی انتخاب شده از یک لیست در پایتون بررسی کرده ایم.

ما با استفاده از شاخص‌های تصادفی به فهرست دسترسی پیدا کرده‌ایم randint() و randrange()، اما همچنین عناصر تصادفی را با استفاده از choice() و sample().

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-13 03:00:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید