Python ngẫu nhiên trong danh sách

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để chọn một phần tử ngẫu nhiên từ danh sách. Bạn sẽ học cách thực hiện điều này bằng cách chọn một phần tử ngẫu nhiên từ danh sách có thay thế, không thay thế và cách sao chép kết quả của bạn. Bạn cũng sẽ học cách thay đổi trọng số của các lựa chọn đã thực hiện

Khả năng làm việc với các phần tử ngẫu nhiên là một kỹ năng quan trọng cần học trong Python. Nó có nhiều ứng dụng rộng rãi, chẳng hạn như trong khoa học dữ liệu và phát triển trò chơi. Ví dụ: nếu bạn đang xây dựng trò chơi bài, bạn có thể muốn chọn ngẫu nhiên một thẻ. Python đi kèm với một mô-đun hữu ích,

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
0, mà chúng ta sẽ khám phá trong hướng dẫn này để giúp bạn làm việc với lựa chọn mục ngẫu nhiên

Khi kết thúc hướng dẫn này, bạn sẽ hiểu sâu về cách sử dụng một số hàm hữu ích từ mô-đun ngẫu nhiên, bao gồm

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
1,
# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
2 và
# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
3. Bạn sẽ học cách sử dụng các hàm này để sửa đổi việc lựa chọn các phần tử ngẫu nhiên từ danh sách Python

Câu trả lời nhanh. Sử dụng

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
4

Python ngẫu nhiên trong danh sách

Mục lục

Mô-đun ngẫu nhiên Python là gì?

Python được tích hợp sẵn một mô-đun để làm việc với các số giả ngẫu nhiên có tên là

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
0. Vì nó được tích hợp vào ngôn ngữ nên chúng tôi có thể dễ dàng nhập nó

import random

Mô-đun đi kèm với một số chức năng hữu ích cho phép chúng tôi chọn hoặc lấy mẫu ngẫu nhiên từ danh sách Python. Nó cũng cung cấp một trình tạo hạt giống cho phép chúng tôi dễ dàng sao chép kết quả của mình hết lần này đến lần khác, cho phép có cơ hội xem lại kết quả hoặc khắc phục mọi sự cố trong mã của chúng tôi

Chọn một phần tử ngẫu nhiên từ danh sách trong Python

Cách đơn giản nhất để sử dụng Python để chọn một phần tử ngẫu nhiên từ danh sách trong Python là sử dụng hàm

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
4. Hàm nhận một tham số duy nhất - một chuỗi. Trong trường hợp này, trình tự của chúng ta sẽ là một danh sách, mặc dù chúng ta cũng có thể sử dụng một bộ

Hãy xem cách chúng ta có thể sử dụng phương thức để chọn một phần tử ngẫu nhiên từ danh sách Python

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5

Chúng ta có thể thấy ở đây hàm

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
2 chọn một mục ngẫu nhiên từ danh sách của chúng ta

Hàm mong muốn hàm không trống. Vì vậy, điều gì xảy ra khi chúng ta chuyển vào một danh sách trống?

Hãy xem nó trông như thế nào

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence

Chúng ta có thể thấy ở đây hàm tăng một

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
8

Trong phần tiếp theo, bạn sẽ học cách sử dụng Python để chọn một số phần tử ngẫu nhiên mà không cần thay thế

Chọn các phần tử ngẫu nhiên từ danh sách trong Python mà không cần thay thế

Trong phần này, bạn sẽ học cách sử dụng Python để chọn nhiều phần tử ngẫu nhiên từ danh sách mà không cần thay thế. Chọn mà không thay thế có nghĩa là gì?

Để sử dụng Python để chọn các phần tử ngẫu nhiên mà không cần thay thế, chúng ta có thể sử dụng hàm

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
0. Hàm chấp nhận hai tham số. danh sách để lấy mẫu và số lượng mặt hàng để lấy mẫu

Hãy xem cách chúng ta có thể sử dụng phương pháp

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
0 để chọn nhiều phần tử ngẫu nhiên từ danh sách

# Choosing random elements from a Python list with random.sample()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.sample(items, 2)
print(random_items)

# Returns: [8, 4]

Chúng ta có thể thấy rằng bằng cách chuyển vào giá trị 2 (đối với đối số từ khóa,

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
2) mà hai mục được trả về

Điều gì xảy ra nếu chúng tôi chuyển vào một giá trị cho

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
2 vượt quá số lượng mục trong danh sách của chúng tôi? . Hãy xem nó trông như thế nào

# Attempting to sample more values than possible
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.sample(items, 11)
print(random_items)

# Raises: ValueError: Sample larger than population or is negative

Chúng ta cũng có thể sử dụng hàm

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
0 để chọn ngẫu nhiên các mục trong danh sách của mình. Chúng tôi có thể làm điều này bằng cách lấy mẫu tất cả các mục trong danh sách

# Using random.sample() to randomize our list
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.sample(items, len(items))
print(random_items)

# Returns: [6, 3, 8, 2, 4, 5, 9, 7, 1]

Hãy xem hướng dẫn của tôi về cách ngẫu nhiên hóa các phần tử danh sách Python để tìm hiểu thêm các cách thực hiện điều này

Trong phần tiếp theo, bạn sẽ học cách sử dụng Python để chọn các phần tử ngẫu nhiên từ danh sách có thay thế

Chọn các phần tử ngẫu nhiên từ danh sách trong Python với sự thay thế

Cũng có thể đôi khi bạn muốn chọn các mục ngẫu nhiên từ danh sách Python có thay thế. Điều này có nghĩa là một mục có thể được chọn nhiều lần. Điều này có nhiều ứng dụng hữu ích, kể cả trong thống kê

Để chọn ngẫu nhiên các mục có thay thế, chúng ta có thể sử dụng phương pháp

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
6. Tương tự như hàm
# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
0, hàm này chấp nhận một danh sách và một số phần tử,
# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
2. Vì chúng ta có thể chọn một mục nhiều lần, nên giá trị của k thực sự có thể vượt quá số lượng mục trong danh sách

Hãy xem cách chúng ta có thể chọn các mục có thay thế trong Python

# Choosing random elements from a Python list with random.choices()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.choices(items, k=4)
print(random_items)

# Returns: [9, 1, 5, 5]

Chúng ta có thể thấy trong ví dụ trên, giá trị 5 được trả về hai lần, mặc dù nó chỉ tồn tại một lần trong danh sách của chúng ta

Hãy xem điều gì xảy ra khi số cho k vượt quá số mục trong danh sách

# Choosing random elements from a Python list with random.choices()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.choices(items, k=len(items) + 2)
print(random_items)

# Returns: [5, 3, 8, 2, 2, 1, 2, 7, 8, 7, 5]

Chúng ta có thể thấy rằng bằng cách đặt giá trị của k lớn hơn độ dài của danh sách, danh sách được trả về sẽ lớn hơn danh sách ban đầu của chúng ta

Trong phần tiếp theo, bạn sẽ tìm hiểu cách chọn các phần tử ngẫu nhiên với các trọng số đã cho trong một danh sách bằng Python

Chọn các phần tử ngẫu nhiên có trọng số từ một danh sách trong Python với sự thay thế

Có thể đôi khi bạn muốn một số mặt hàng nặng hơn các mặt hàng khác. Điều này có nghĩa là khi chọn các mục ngẫu nhiên, bạn có thể muốn một số mục có khả năng được chọn cao hơn

Chúng ta có thể thay đổi trọng số của các mục bằng cách chuyển một mảng vào tham số

# Raising an error when the list is empty
import random
items = []
random_item = random.choice(items)
print(random_item)

# Raises: IndexError: Cannot choose from an empty sequence
9. Trước khi đi sâu vào cách thức hoạt động của nó, chúng ta có thể tưởng tượng rằng theo mặc định, một mảng có trọng số bằng nhau được sử dụng. Bằng cách thay đổi trọng số tương đối, chúng tôi có thể chỉ định khả năng chúng tôi muốn một mục được chọn cao hơn bao nhiêu

Hãy xem cách chúng ta có thể sử dụng Python để cung cấp cho một mục khả năng được chọn cao hơn mười lần so với các mục khác trong danh sách

# Choosing random items from a list with replacement and weights
import random
items = [1, 2, 3, 4]
random_items = random.choices(items, k=4, weights=[10, 1, 1, 1])
print(random_items)

# Returns: [1, 3, 1, 1]

Ở đây, chúng tôi đã vượt qua trọng lượng của

# Choosing random elements from a Python list with random.sample()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.sample(items, 2)
print(random_items)

# Returns: [8, 4]
0. Các trọng số có liên quan với nhau, nghĩa là mục đầu tiên trong danh sách có cơ hội được chọn cao hơn mười lần so với các mục khác

Trong phần tiếp theo, bạn sẽ tìm hiểu cách tạo lại kết quả khi chọn các phần tử ngẫu nhiên

Sử dụng hạt giống ngẫu nhiên để tái tạo kết quả khi chọn các phần tử ngẫu nhiên

Một yếu tố rất hữu ích trong việc phát triển các kết quả ngẫu nhiên, (trớ trêu thay) lại là khả năng tái tạo kết quả. Điều này có thể giúp những người khác sao chép kết quả của bạn và cũng có thể giúp ích đáng kể trong việc khắc phục sự cố công việc của bạn

Mô-đun ngẫu nhiên của Python bao gồm khái niệm về “hạt giống”, tạo ra một trình tạo số ngẫu nhiên. Điều này cho phép chúng tôi sao chép kết quả

Hãy xem cách chúng ta có thể sử dụng hàm

# Choosing random elements from a Python list with random.sample()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.sample(items, 2)
print(random_items)

# Returns: [8, 4]
1 ngẫu nhiên để tái tạo kết quả của mình

# Reproduce random item selection in Python
import random
random.seed(1)

items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_items = random.choices(items, k=4)
print(random_items)

# Returns: [2, 8, 7, 3]

Nếu chúng tôi chạy lại chương trình này, chúng tôi sẽ trả về các giá trị giống nhau mỗi lần

Phần kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng Python để chọn ngẫu nhiên các mục từ danh sách Python. Bạn đã học cách sử dụng mô-đun

# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
0 và các hàm
# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
2,
# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
3 và
# Choosing a random element from a Python list with random.choice()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]

random_item = random.choice(items)
print(random_item)

# Returns: 5
1 của nó để chọn một hoặc nhiều mục có thay thế và không có thay thế. Bạn cũng đã học cách áp dụng trọng số cho việc lấy mẫu của mình để ưu tiên hơn cho một số mặt hàng so với những mặt hàng khác. Cuối cùng, bạn đã học cách sử dụng hàm
# Choosing random elements from a Python list with random.sample()
import random
items = [1, 2, 3, 4, 5, 6, 7, 8, 9]
random_items = random.sample(items, 2)
print(random_items)

# Returns: [8, 4]
1 để có thể tái tạo kết quả của chúng tôi