از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش انتخاب تصادفی عناصر از لیست در پایتون
سرفصلهای مطلب
معرفی
انتخاب یک عنصر یا مقدار تصادفی از یک لیست یک کار رایج است – چه برای نتایج تصادفی از فهرستی از توصیهها یا فقط یک درخواست تصادفی.
در این مقاله نگاهی خواهیم داشت روش انتخاب تصادفی عناصر از لیست در پایتون. ما بازیابی هر دو عنصر تصادفی منفرد و همچنین بازیابی عناصر متعدد – با و بدون تکرار را پوشش خواهیم داد.
انتخاب یک عنصر تصادفی از لیست پایتون
بصری ترین و طبیعی ترین رویکرد برای حل این مشکل، تولید یک عدد تصادفی است که به عنوان یک شاخص برای دسترسی به یک عنصر از لیست عمل می کند.
برای پیاده سازی این رویکرد، اجازه دهید به چند روش برای تولید اعداد تصادفی در پایتون نگاه کنیم: 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
، درست مانند روش قبلی.
این رویکرد کمی سادهتر از روش قبلی است، فقط به این دلیل که ما نقطه شروع را مشخص نمیکنیم، که به طور پیشفرض 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
لیست اندازه عناصر به طور تصادفی با جایگزینی انتخاب شده است.
این روش همچنین می تواند برای پیاده سازی انتخاب های تصادفی وزن دار مورد استفاده قرار گیرد که می توانید در ادامه به بررسی آنها بپردازید اسناد رسمی پایتون.
انتخاب تصادفی 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