Làm thế nào để bạn chọn một mục ngẫu nhiên từ danh sách mà không có lựa chọn trong python?

Điều này cung cấp cho bạn một câu trả lời nhanh chóng. Tuy nhiên, có những cách khác bạn có thể xem xét. Hãy xem xét kỹ hơn về việc chọn ngẫu nhiên các phần tử từ danh sách trong Python

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

Có sáu cách khác nhau để chọn ngẫu nhiên các phần tử từ danh sách trong Python

  1. ngẫu nhiên. sắp xếp lại []
  2. ngẫu nhiên. ngẫu nhiên[]
  3. ngẫu nhiên. sự lựa chọn[]
  4. ngẫu nhiên. randint[]
  5. ngẫu nhiên. vật mẫu[]
  6. bí mật. sự lựa chọn[]

Hãy xem xét từng phương pháp này một cách chi tiết hơn với các ví dụ hữu ích

1. Ngẫu nhiên. sắp xếp lại []

Để chọn một giá trị ngẫu nhiên giữa hai số, bạn có thể sử dụng tùy chọn ngẫu nhiên. hàm sắp xếp []

Để sử dụng điều này để chọn một phần tử ngẫu nhiên từ danh sách

  • Tạo chỉ mục số ngẫu nhiên trong khoảng từ 0 đến độ dài của danh sách
  • Lấy một phần tử từ danh sách dựa trên chỉ mục đó

Ví dụ

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = random.randrange[len[names]]
random_name = names[random_index]

print[random_name]

Đầu ra [ví dụ]

David

2. Ngẫu nhiên. ngẫu nhiên[]

sự ngẫu nhiên. phương thức random[] trả về một số dấu phẩy động ngẫu nhiên trong khoảng từ 0 đến 1

Mặc dù nó không thực tế nhưng bạn có thể sử dụng phương pháp này để chọn một phần tử ngẫu nhiên từ danh sách

Ví dụ

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]

Đầu ra [ví dụ]

Alice

3. Ngẫu nhiên. sự lựa chọn[]

sự ngẫu nhiên. lựa chọn [] là phương thức tiếp theo để chọn các mục từ danh sách một cách ngẫu nhiên

Ví dụ

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_name = random.choice[names]

print[random_name]

đầu ra

David

4. Ngẫu nhiên. randint[]

Để chọn một số nguyên ngẫu nhiên giữa hai số, hãy sử dụng hàm ngẫu nhiên. phương thức randint[]

Khi nói đến việc chọn một phần tử ngẫu nhiên từ danh sách, bạn có thể sử dụng ngẫu nhiên. randint[] như sau

  • Chọn một chỉ số nguyên ngẫu nhiên trong khoảng từ 0 đến độ dài của danh sách – 1
  • Sử dụng chỉ mục ngẫu nhiên để lấy phần tử tương ứng từ danh sách

Ví dụ

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = random.randint[0, len[names] - 1]
random_name = names[random_index]

print[random_name]

đầu ra

Alice

5. Ngẫu nhiên. vật mẫu[]

Cuối cùng nhưng không kém phần quan trọng, bạn có thể sử dụng tùy chọn ngẫu nhiên. phương thức sample[] để chọn một nhóm các phần tử ngẫu nhiên từ danh sách

cú pháp

Bob
0

Ở đâu

  • danh sách là nhóm các mục mà bạn đang chọn các giá trị
  • num_elements là số phần tử ngẫu nhiên bạn muốn lấy mẫu từ danh sách

Ví dụ: hãy chọn hai tên ngẫu nhiên từ một nhóm bốn người

Bob
1

Ví dụ đầu ra

Bob
2

6. bí mật. sự lựa chọn[]

Để chọn một giá trị ngẫu nhiên mạnh về mật mã từ danh sách, hãy sử dụng các bí mật. phương thức lựa chọn []

Phương pháp này đã được thêm vào Python 3. 6

Ví dụ

Bob
3

đầu ra

Alice

Tuy nhiên, trừ khi bạn thực sự cần một trình tạo số ngẫu nhiên an toàn bằng mật mã, hãy sử dụng hàm ngẫu nhiên. phương thức choice[] thay thế

Sự kết luận

Có rất nhiều cách để chọn các mục ngẫu nhiên từ danh sách trong Python

Để mang về nhà, sử dụng ngẫu nhiên. lựa chọn [] để chọn một phần tử ngẫu nhiên từ danh sách. Các phương pháp khác hoạt động tốt, nhưng ngẫu nhiên. lựa chọn [] có nghĩa là chính xác rằng

Trong Python, bạn có thể lấy mẫu ngẫu nhiên các phần tử từ danh sách bằng

David
36,
David
37 và
David
38 của mô-đun
David
39. Các chức năng này cũng có thể được áp dụng cho một chuỗi và tuple

David
36 trả về một phần tử ngẫu nhiên và
David
37 và
David
38 trả về danh sách nhiều phần tử ngẫu nhiên.
David
37 được sử dụng để lấy mẫu ngẫu nhiên không thay thế và
David
38 được sử dụng để lấy mẫu ngẫu nhiên có thay thế

  • ngẫu nhiên — Tạo số giả ngẫu nhiên — Python 3. 8. 1 tài liệu

Bài viết này mô tả các nội dung sau

  • Chọn một yếu tố ngẫu nhiên.
    import random
    
    names = ["Alice", "Bob", "Charlie", "David"]
    
    random_index = int[random.random[] * len[names]]
    random_name = names[random_index]
    
    print[random_name]
    25
  • mẫu ngẫu nhiên mà không cần thay thế.
    import random
    
    names = ["Alice", "Bob", "Charlie", "David"]
    
    random_index = int[random.random[] * len[names]]
    random_name = names[random_index]
    
    print[random_name]
    26
  • mẫu ngẫu nhiên với sự thay thế.
    import random
    
    names = ["Alice", "Bob", "Charlie", "David"]
    
    random_index = int[random.random[] * len[names]]
    random_name = names[random_index]
    
    print[random_name]
    27
  • Khởi tạo trình tạo số ngẫu nhiên.
    import random
    
    names = ["Alice", "Bob", "Charlie", "David"]
    
    random_index = int[random.random[] * len[names]]
    random_name = names[random_index]
    
    print[random_name]
    28

Nếu bạn muốn chọn các phần tử trong danh sách theo điều kiện, hãy xem bài viết sau

  • Trích xuất, thay thế, chuyển đổi các phần tử của danh sách trong Python

Nếu bạn muốn xáo trộn toàn bộ danh sách hoặc lấy danh sách các số ngẫu nhiên, hãy xem bài viết sau

  • Xáo trộn một danh sách, chuỗi, tuple trong Python [ngẫu nhiên. xáo trộn, lấy mẫu]
  • Tạo int/float ngẫu nhiên trong Python [ngẫu nhiên, randrange, randint, v.v. ]

Liên kết được tài trợ

Chọn một yếu tố ngẫu nhiên.
import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
25

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
25 trả về một phần tử ngẫu nhiên từ danh sách

  • ngẫu nhiên. choice[] — Tạo số giả ngẫu nhiên — Python 3. 8. 1 tài liệu

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
8

nguồn. random_choice. py

Tuples và chuỗi được xử lý tương tự. Trong trường hợp là một chuỗi, một ký tự được trả về

David
3

nguồn. random_choice. py

Một lỗi xuất hiện nếu một danh sách, bộ dữ liệu hoặc chuỗi trống

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
2

nguồn. random_choice. py

mẫu ngẫu nhiên mà không cần thay thế.
import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
26

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
26 lấy mẫu ngẫu nhiên nhiều phần tử từ danh sách mà không cần thay thế

Truyền danh sách cho đối số đầu tiên và số lượng phần tử bạn muốn nhận cho đối số thứ hai. Một danh sách được trả về

  • ngẫu nhiên. mẫu — Tạo số giả ngẫu nhiên — Python 3. 8. 1 tài liệu

Alice
3

nguồn. mẫu thử ngẫu nhiên. py

Nếu đối số thứ hai được đặt thành

Alice
33, một danh sách có một phần tử được trả về. Nếu được đặt thành
Alice
34, một danh sách trống sẽ được trả về. Nếu được đặt thành giá trị vượt quá số phần tử của danh sách, sẽ xảy ra lỗi

Alice
6

nguồn. mẫu thử ngẫu nhiên. py

Ngay cả khi bạn chuyển một bộ hoặc một chuỗi cho đối số đầu tiên, danh sách vẫn được trả về

Alice
7

nguồn. mẫu thử ngẫu nhiên. py

Để chuyển đổi danh sách thành bộ hoặc chuỗi, hãy sử dụng

Alice
35,
Alice
36

  • Chuyển đổi danh sách và tuple với nhau trong Python
  • Nối các chuỗi trong Python [toán tử +, nối, v.v. ]

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_name = random.choice[names]

print[random_name]
0

nguồn. mẫu thử ngẫu nhiên. py

Lưu ý rằng nếu danh sách gốc hoặc bộ dữ liệu chứa các phần tử trùng lặp, giá trị giống nhau có thể được chọn

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_name = random.choice[names]

print[random_name]
1

nguồn. mẫu thử ngẫu nhiên. py

Nếu bạn muốn tránh các giá trị trùng lặp, hãy sử dụng

Alice
37 để chuyển đổi danh sách và bộ dữ liệu thành
Alice
38, chỉ trích xuất các phần tử duy nhất, sau đó sử dụng
David
37

  • Xóa/trích xuất các phần tử trùng lặp khỏi danh sách trong Python

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_name = random.choice[names]

print[random_name]
5

nguồn. mẫu thử ngẫu nhiên. py

Liên kết được tài trợ

mẫu ngẫu nhiên với sự thay thế.
import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
27

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
27 lấy mẫu ngẫu nhiên nhiều phần tử từ danh sách có thay thế

import random

names = ["Alice", "Bob", "Charlie", "David"]

random_index = int[random.random[] * len[names]]
random_name = names[random_index]

print[random_name]
27 đã được thêm vào Python 3. 6 và không thể được sử dụng trong các phiên bản trước

  • ngẫu nhiên. lựa chọn [] - Tạo số giả ngẫu nhiên - Python 3. 8. 1 tài liệu

Chỉ định số lượng phần tử bạn muốn nhận với đối số

Alice
63. Vì các phần tử được chọn thay thế, nên
Alice
63 có thể lớn hơn số lượng phần tử trong danh sách ban đầu

Alice
63 là đối số chỉ có từ khóa nên cần phải chỉ định như thế nào
Alice
66

David
3

nguồn. random_choices. py

Alice
63 được đặt thành
Alice
33 theo mặc định. Nếu bị bỏ qua, một danh sách có một phần tử được trả về

David
30

nguồn. random_choices. py

Bạn có thể chỉ định trọng số [xác suất] cho từng phần tử cho đối số

Alice
69. Loại phần tử danh sách được chỉ định trong
Alice
69 có thể là
Alice
71 hoặc
Alice
72. Nếu được đặt thành
Alice
34, phần tử không được chọn

David
31

nguồn. random_choices. py

Trọng số tích lũy có thể được chỉ định trong đối số

Alice
74.
Alice
74 trong mã mẫu sau tương đương với
Alice
69 đầu tiên trong mã trên

David
32

nguồn. random_choices. py

Theo mặc định, cả

Alice
69 và
Alice
74 đều được đặt thành
Alice
79 và mỗi phần tử được chọn với cùng xác suất

Nếu độ dài [số phần tử] của

Alice
69 hoặc
Alice
74 khác với danh sách ban đầu thì sẽ xảy ra lỗi

David
33

nguồn. random_choices. py

Ngoài ra, sẽ xảy ra lỗi nếu bạn chỉ định đồng thời

Alice
69 và
Alice
74

David
34

nguồn. random_choices. py

Trong mã mẫu cho đến nay, một danh sách được chỉ định cho đối số đầu tiên, nhưng điều tương tự cũng áp dụng cho một bộ và chuỗi

Có cách nào để chọn ngẫu nhiên một danh sách trong Python không?

Để sử dụng xáo trộn, hãy nhập gói ngẫu nhiên Python bằng cách thêm dòng nhập ngẫu nhiên gần đầu chương trình của bạn. Sau đó, nếu bạn có một danh sách gọi là x, bạn có thể gọi ngẫu nhiên. shuffle[x] để chức năng xáo trộn ngẫu nhiên sắp xếp lại danh sách theo cách ngẫu nhiên. Lưu ý rằng chức năng xáo trộn thay thế danh sách hiện có

Làm cách nào bạn có thể chọn một mục ngẫu nhiên từ một phạm vi trong Python?

Sử dụng ngẫu nhiên. hàm randrange[] để lấy một số nguyên ngẫu nhiên từ phạm vi loại trừ đã cho bằng cách chỉ định số gia . Ví dụ, ngẫu nhiên. randrange[0, 10, 2] sẽ trả về bất kỳ số ngẫu nhiên nào trong khoảng từ 0 đến 20 [như 0, 2, 4, 6, 8].

Chủ Đề