Đ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
- ngẫu nhiên. sắp xếp lại []
- ngẫu nhiên. ngẫu nhiên[]
- ngẫu nhiên. sự lựa chọn[]
- ngẫu nhiên. randint[]
- ngẫu nhiên. vật mẫu[]
- 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
Bob0
Ở đâ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
Bob1
Ví dụ đầu ra
Bob2
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ụ
Bob3
đầ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
David36,
David37 và
David38 của mô-đun
David39. Các chức năng này cũng có thể được áp dụng cho một chuỗi và tuple
David36 trả về một phần tử ngẫu nhiên và
David37 và
David38 trả về danh sách nhiều phần tử ngẫu nhiên.
David37 được sử dụng để lấy mẫu ngẫu nhiên không thay thế và
David38 đượ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ề
David3
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
Alice3
nguồn. mẫu thử ngẫu nhiên. py
Nếu đối số thứ hai được đặt thành
Alice33, một danh sách có một phần tử được trả về. Nếu được đặt thành
Alice34, 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
Alice6
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ề
Alice7
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
Alice35,
Alice36
- 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
Alice37 để chuyển đổi danh sách và bộ dữ liệu thành
Alice38, chỉ trích xuất các phần tử duy nhất, sau đó sử dụng
David37
- 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ố
Alice63. Vì các phần tử được chọn thay thế, nên
Alice63 có thể lớn hơn số lượng phần tử trong danh sách ban đầu
Vì
Alice63 là đối số chỉ có từ khóa nên cần phải chỉ định như thế nào
Alice66
David3
nguồn. random_choices. py
Alice63 được đặt thành
Alice33 theo mặc định. Nếu bị bỏ qua, một danh sách có một phần tử được trả về
David30
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ố
Alice69. Loại phần tử danh sách được chỉ định trong
Alice69 có thể là
Alice71 hoặc
Alice72. Nếu được đặt thành
Alice34, phần tử không được chọn
David31
nguồn. random_choices. py
Trọng số tích lũy có thể được chỉ định trong đối số
Alice74.
Alice74 trong mã mẫu sau tương đương với
Alice69 đầu tiên trong mã trên
David32
nguồn. random_choices. py
Theo mặc định, cả
Alice69 và
Alice74 đều được đặt thành
Alice79 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
Alice69 hoặc
Alice74 khác với danh sách ban đầu thì sẽ xảy ra lỗi
David33
nguồn. random_choices. py
Ngoài ra, sẽ xảy ra lỗi nếu bạn chỉ định đồng thời
Alice69 và
Alice74
David34
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