Bạn có thể sử dụng random.shuffle()
tới, tốt, xáo trộn một danh sách:
import random
r = list(range(1000))
random.shuffle(r)
for i in r:
# do something with i
Bằng cách này, trong nhiều trường hợp bạn muốn sử dụng một vòng lặp for
qua một loạt các số nguyên trong ngôn ngữ lập trình khác, bạn có thể mô tả trực tiếp "điều" bạn muốn lặp lại bằng Python.
Ví dụ, nếu bạn muốn sử dụng các giá trị của i
để truy cập các yếu tố của một danh sách, bạn nên xáo trộn tốt hơn trong danh sách trực tiếp:
lst = [1970, 1991, 2012]
random.shuffle(lst)
for x in lst:
print x
LƯU Ý: Bạn nên chịu cảnh báo sau đây trong tâm trí khi sử dụng random.shuffle()
(lấy từ docs:
Lưu ý rằng cho len thậm chí khá nhỏ (x), tổng số hoán vị của x là lớn hơn so với thời gian của hầu hết các số ngẫu nhiên gen erators; điều này ngụ ý rằng hầu hết các hoán vị của một chuỗi dài có thể không bao giờ được tạo ra.
Nguồn
2012-02-12 20:28:07
@ Greg: Thực ra tôi nhận thấy rằng random.shuffle đổi các toán hạng tại chỗ, vì vậy tôi thậm chí cant't sử dụng nó như là một biểu:/Cảm ơn đã gợi ý, tuy nhiên, tôi đã thay đổi nó. –
Đừng lo, tôi đã xóa nhận xét của tôi vì nó không còn được áp dụng khi bạn đã thay đổi điều đó. :) –
Ngoài ra, Python sẽ tự động tạo bộ tạo số ngẫu nhiên của nó để không yêu cầu một cuộc gọi đến 'random.seed()'. –