Thư ngẫu nhiên python

Chọn một phần tử hoặc giá trị ngẫu nhiên từ danh sách là một nhiệm vụ phổ biến - có thể là kết quả ngẫu nhiên từ danh sách đề xuất hoặc chỉ là lời nhắc ngẫu nhiên

Nội dung chính Hiển thị

  • Giới thiệu
  • Chọn nhiều hơn một phần tử ngẫu nhiên từ danh sách Python
  • Chọn n phần tử ngẫu nhiên không lặp lại
  • Video liên quan

Trong bài viết này, chúng ta sẽ xem cách chọn ngẫu nhiên các phần tử từ danh sách trong Python. Chúng tôi sẽ đề cập đến việc truy xuất cả hai phần tử ngẫu nhiên đơn lẻ, cũng như truy xuất nhiều phần tử - có và không có lặp lại

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

Cách tiếp cận trực quan và tự nhiên nhất để giải quyết vấn đề này là tạo một số ngẫu nhiên hoạt động như một chỉ mục để truy cập một phần tử từ danh sách

Để thực hiện phương pháp này, hãy xem xét một số phương pháp để tạo số ngẫu nhiên trong Python. ngẫu nhiên. randint() và ngẫu nhiên. sắp xếp lại (). Chúng ta có thể sử dụng thêm ngẫu nhiên. lựa chọn () và cung cấp một lần lặp - dẫn đến một phần tử ngẫu nhiên từ lần lặp đó được trả lại

Sử dụng ngẫu nhiên. randint()

ngẫu nhiên. randint(a, b) trả về một số nguyên ngẫu nhiên giữa a và b bao gồm

Chúng tôi sẽ muốn chỉ mục ngẫu nhiên trong phạm vi từ 0 đến len(list)-1, để lấy chỉ mục ngẫu nhiên của một phần tử trong danh sách

nhập các chữ cái ngẫu nhiên = ['a', 'b', 'c', 'd', 'e', ​​'f'] random_index = ngẫu nhiên. randint(0,len(chữ cái)-1) print(chữ cái[random_index])

Chạy mã này nhiều lần mang lại cho chúng tôi

e c f a

Sử dụng ngẫu nhiên. sắp xếp lại ()

ngẫu nhiên. randrange(a) là một phương thức khác trả về một số n ngẫu nhiên sao cho 0 <= n < a

nhập các chữ cái ngẫu nhiên = ['a', 'b', 'c', 'd', 'e', ​​'f'] random_index = ngẫu nhiên. randrange(len(chữ cái)) print(chữ cái[random_index])

Chạy mã này nhiều lần sẽ tạo ra thứ gì đó dọc theo dòng

f d d e

như ngẫu nhiên. randrange(len(chữ cái)) trả về một số được tạo ngẫu nhiên trong phạm vi từ 0 đến len(chữ cái) - 1, chúng tôi sử dụng nó để truy cập một phần tử ngẫu nhiên bằng chữ cái, giống như chúng tôi đã làm trong phương pháp trước

Cách tiếp cận này đơn giản hơn một chút so với cách trước, đơn giản vì chúng tôi không chỉ định điểm bắt đầu, mặc định là 0

Sử dụng ngẫu nhiên. sự lựa chọn()

Bây giờ, một giải pháp thậm chí còn tốt hơn giải pháp cuối cùng là sử dụng ngẫu nhiên. choice() vì đây chính là chức năng được thiết kế để giải quyết vấn đề này

nhập các chữ cái ngẫu nhiên = ['a', 'b', 'c', 'd', 'e', ​​'f'] print(random. lựa chọn (chữ cái))

Chạy này nhiều lần dẫn đến

b e e f e

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

Sử dụng ngẫu nhiên. vật mẫu()

Phương pháp đầu tiên mà chúng ta có thể sử dụng để chọn ngẫu nhiên nhiều phần tử là ngẫu nhiên. vật mẫu(). Nó tạo ra một mẫu, dựa trên số lượng mẫu mà chúng tôi muốn quan sát

nhập các chữ cái ngẫu nhiên = ['a', 'b', 'c', 'd', 'e', ​​'f'] print(random. mẫu(chữ cái, 3))

Điều này trả về một danh sách

['d', 'c', 'a']

Phương pháp này chọn các phần tử mà không cần thay thế, tôi. e. , nó chọn mà không trùng lặp và lặp lại

Nếu chúng ta chạy cái này

in (ngẫu nhiên. mẫu(chữ cái, len(chữ cái)))

Vì nó không trả về các bản sao, nên nó sẽ chỉ trả về toàn bộ danh sách của chúng ta theo thứ tự ngẫu nhiên

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

['a', 'e', ​​'c', 'd', 'f', 'b']

Sử dụng ngẫu nhiên. lựa chọn()

Tương tự như chức năng trước, ngẫu nhiên. lựa chọn () trả về danh sách các phần tử được chọn ngẫu nhiên từ một lần lặp nhất định. Mặc dù vậy, nó không theo dõi các phần tử đã chọn, vì vậy bạn cũng có thể nhận được các phần tử trùng lặp

nhập các chữ cái ngẫu nhiên = ['a', 'b', 'c', 'd', 'e', ​​'f'] print(random. lựa chọn (chữ cái, k=3))

Điều này trả về một cái gì đó dọc theo dòng

['e', 'f', 'f']

Ngoài ra, nếu chúng ta chạy

in (ngẫu nhiên. lựa chọn(chữ cái, k = len(chữ cái)))

Nó có thể trả lại một cái gì đó như

['d', 'e', ​​'b', 'd', 'd', 'd']

ngẫu nhiên. các lựa chọn trả về một danh sách các phần tử có kích thước k được chọn ngẫu nhiên có thay thế

Phương pháp này cũng có thể được sử dụng để triển khai các lựa chọn ngẫu nhiên có trọng số mà bạn có thể khám phá thêm trong tài liệu Python chính thức

Chọn n phần tử ngẫu nhiên không lặp lại

Nếu bạn đang tìm cách tạo các tập hợp n phần tử ngẫu nhiên, không lặp lại, nhiệm vụ này có vẻ phức tạp hơn các nhiệm vụ trước đó, nhưng trên thực tế - nó khá đơn giản

Bạn xáo trộn () danh sách và phân chia nó thành n phần. Điều này đảm bảo rằng không có phần tử trùng lặp nào được thêm vào, vì bạn chỉ đang cắt danh sách và chúng tôi đã xáo trộn danh sách đó để các bộ sưu tập là ngẫu nhiên

Nếu bạn muốn đọc thêm về cách chia danh sách thành các phần ngẫu nhiên, hãy xem - Cách chia danh sách thành các phần chẵn trong Python

Chúng tôi sẽ lưu kết quả vào một danh sách mới và nếu không có đủ yếu tố để phù hợp với bộ sưu tập cuối cùng, nó sẽ đơn giản là chưa hoàn thành

nhập ngẫu nhiên def select_random_Ns(lst, n). ngẫu nhiên. xáo trộn (cuối cùng) kết quả = [] cho tôi trong phạm vi (0, len (danh sách), n). kết quả. nối thêm (lst [i. i + n]) kết quả trả về lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(select_random_Ns(lst, 2))

Điều này dẫn đến một danh sách các cặp ngẫu nhiên, không lặp lại

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

Sự kết luận

Trong bài viết này, chúng ta đã khám phá một số cách để truy xuất một hoặc nhiều phần tử được chọn ngẫu nhiên từ Danh sách trong Python

Chúng tôi đã truy cập danh sách trong các chỉ mục ngẫu nhiên bằng cách sử dụng randint() và randrange(), nhưng cũng có các phần tử ngẫu nhiên bằng cách sử dụng choice() và sample()