Làm cách nào để bạn tạo nhiều giá trị ngẫu nhiên trong danh sách python?

Đối số đầu tiên mà phương thức nhận là một chuỗi và đối số thứ hai là số phần tử ngẫu nhiên được trả về

Phương thức

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
2 trả về danh sách các phần tử có kích thước N được chọn từ chuỗi mà không cần thay thế

Không thay thế có nghĩa là cùng một phần tử không thể được trả lại nhiều lần

Phương pháp

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
2 tăng
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
46 nếu mẫu lớn hơn chuỗi

Nếu bạn cần xử lý tình huống này, hãy sử dụng khối

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
47

Việc cố gắng truy xuất nhiều phần tử hơn số phần tử có trong

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
4 đã gây ra lỗi
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
46, sau đó khối này được xử lý bởi khối
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
20

Ngoài ra, bạn có thể sử dụng phương pháp

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
21

Tạo N số ngẫu nhiên duy nhất trong một phạm vi bằng cách sử dụng ngẫu nhiên. xáo trộn[] #

Để tạo N số ngẫu nhiên duy nhất trong một phạm vi

  1. Sử dụng lớp
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    0 để lấy đối tượng
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    4
  2. Sử dụng lớp
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    24 để chuyển đổi đối tượng
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    4 thành danh sách
  3. Sử dụng phương pháp
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    21 để xáo trộn danh sách
  4. Sử dụng danh sách cắt để lấy N số ngẫu nhiên duy nhất từ ​​​​danh sách

sự ngẫu nhiên. phương thức xáo trộn lấy một chuỗi và xáo trộn nó tại chỗ

Bước cuối cùng là sử dụng cắt danh sách để chọn N phần tử ngẫu nhiên duy nhất từ ​​​​danh sách

Cú pháp để cắt danh sách là

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
27

Chỉ mục

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
6 là bao gồm và chỉ mục
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
7 là độc quyền [tối đa, nhưng không bao gồm]

Nếu bỏ chỉ mục

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
6 thì được coi là
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
9, nếu bỏ chỉ mục
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
7 thì lát về cuối danh sách

Các chỉ mục Python dựa trên số không, vì vậy mục đầu tiên trong danh sách có chỉ mục là

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
9 và mục cuối cùng có chỉ mục là
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
24 hoặc
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
25

Bạn có muốn khởi tạo một danh sách với một số số ngẫu nhiên không?

Vấn đề. Cho một số nguyên

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
0. Tạo danh sách các phần tử
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
0 trong một khoảng thời gian nhất định [ví dụ khoảng thời gian. [0, 20]]

# n = 5 --> [2, 3, 1, 4, 3]
# n = 3 --> [10, 12, 1]
# n = 10 --> [8, 2, 18, 10, 4, 19, 5, 9, 8, 1]

Dung dịch. Dưới đây là tổng quan nhanh về cách bạn có thể tạo danh sách các số ngẫu nhiên

  • Phương pháp 1.
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    2 để tạo danh sách số float ngẫu nhiên
  • Phương pháp 2.
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    3 để tạo danh sách int ngẫu nhiên
  • Phương pháp 3.
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    4 để tạo danh sách int ngẫu nhiên
  • Phương pháp 4.
    # Method 1: List Comprehension Random Float List [0, 1]
    import random
    randlist = [random.random[] for _ in range[10]]
    5 để tạo danh sách int ngẫu nhiên

Bạn có thể tự mình thử những mã đó trong trình bao mã tương tác của chúng tôi

Exercise: Change the interval of each method to [0, ] and run the code.

Phương pháp 1. Danh sách hiểu danh sách nổi ngẫu nhiên [0, 1]

Hiểu danh sách là một cách nhỏ gọn để tạo danh sách. Công thức đơn giản là

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
6

  • Biểu hiện. Phải làm gì với từng phần tử danh sách?
  • Định nghĩa bài văn. Những yếu tố để lựa chọn?
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]

Trong vỏ Python của tôi, kết quả như sau

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
1

Trong mã, trước tiên bạn nhập mô-đun ngẫu nhiên

Sau đó, bạn tạo một danh sách các số float ngẫu nhiên bằng cách gọi liên tục

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
9 để tạo ra một số float ngẫu nhiên trong khoảng từ 0 đến 1 mỗi khi nó được gọi

Bạn gọi nó mười lần như được định nghĩa trong phần ngữ cảnh

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
10. Lưu ý rằng dấu gạch dưới đóng vai trò là biến "bỏ đi" vì bạn không thực sự cần nó để tạo danh sách

Cũng lưu ý rằng câu lệnh hiểu danh sách đánh giá biểu thức nhiều lần—chứ không chỉ một lần ngay từ đầu. Đó là lý do tại sao tất cả các số trong danh sách đều khác nhau

Bạn có thể dễ dàng mở rộng việc tạo số float trong khoảng thời gian lớn hơn bằng cách nhân số float được tạo ngẫu nhiên với một hằng số.

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
11 sẽ tạo một danh sách các số float ngẫu nhiên trong khoảng thời gian
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
12

Nếu bạn gặp khó khăn với việc hiểu danh sách, hãy xem video giải thích của tôi

Giới thiệu đơn giản về hiểu danh sách trong Python


Xem video này trên YouTube

Sử dụng khả năng hiểu danh sách để tạo danh sách các số ngẫu nhiên có thể đọc được, ngắn gọn và hiệu quả. Nếu không phải là phương pháp thứ tư, tôi coi đây là cách Pythonic nhất để tạo danh sách các số float ngẫu nhiên

Phương pháp 2. Danh sách hiểu danh sách số nguyên ngẫu nhiên [0, 999]

Để cho đầy đủ, đây là câu lệnh hiểu danh sách tạo danh sách các số nguyên ngẫu nhiên trong khoảng [0, 999]

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
6

Trong vỏ Python của tôi, kết quả như sau

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
7

Bạn sử dụng hàm

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
13 để tạo một giá trị số nguyên ngẫu nhiên giữa giá trị đầu 0 và giá trị cuối 999, vì vậy tất cả các số nguyên được tạo nằm trong khoảng [0, 999]

Đây là một cách rất Pythonic và dễ đọc để tạo danh sách các số nguyên ngẫu nhiên. Bạn có thể ngừng đọc ngay lập tức và sử dụng nó trong mã của riêng bạn

Phương pháp 3. Đối với danh sách số nguyên ngẫu nhiên của vòng lặp [0, 99]

Một giải pháp thay thế thường được các lập trình viên không phải Python sử dụng là sử dụng vòng lặp for đơn giản thực hiện tương tự như việc hiểu danh sách [nhưng yêu cầu nhiều dung lượng hơn]

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
9

Trong vỏ Python của tôi, kết quả như sau

# n = 5 --> [2, 3, 1, 4, 3]
# n = 3 --> [10, 12, 1]
# n = 10 --> [8, 2, 18, 10, 4, 19, 5, 9, 8, 1]
0

Một lần nữa, bạn sử dụng biến gạch dưới bỏ đi vì số ngẫu nhiên không phải là hàm của biến vòng lặp. Mỗi hai cuộc gọi đến chức năng

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
14 là độc lập

Tôi coi đây là cách ít Pythonic nhất để giải quyết vấn đề này

Phương pháp 4. ngẫu nhiên. vật mẫu[]

Cuối cùng, chúng tôi đi đến cách Pythonic nhất để giải quyết vấn đề này. đứng trên vai những người khổng lồ và sử dụng chức năng tích hợp hiện có. Phương pháp

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
15 lấy một “vũ trụ” mà từ đó các số ngẫu nhiên được rút ra và một danh sách có kích thước
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
0—và rút ra các số ngẫu nhiên
# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
0 từ vũ trụ của bạn

# n = 5 --> [2, 3, 1, 4, 3]
# n = 3 --> [10, 12, 1]
# n = 10 --> [8, 2, 18, 10, 4, 19, 5, 9, 8, 1]
5

Trong vỏ Python của tôi, kết quả như sau

# n = 5 --> [2, 3, 1, 4, 3]
# n = 3 --> [10, 12, 1]
# n = 10 --> [8, 2, 18, 10, 4, 19, 5, 9, 8, 1]
6

Bạn sử dụng vũ trụ

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
18 trong số 20 số nguyên đầu tiên 0, …, 19 và rút ra 10 phần tử ngẫu nhiên từ vũ trụ. Lưu ý rằng theo mặc định, không cho phép trùng lặp. Nếu vũ trụ nhỏ hơn kích thước danh sách n, sẽ xảy ra lỗi

# n = 5 --> [2, 3, 1, 4, 3]
# n = 3 --> [10, 12, 1]
# n = 10 --> [8, 2, 18, 10, 4, 19, 5, 9, 8, 1]
8

Thảo luận

Trong hướng dẫn này, bạn đã học được bốn phương pháp để giải quyết vấn đề tạo danh sách các số ngẫu nhiên. Một cách khách quan, cách Pythonic nhất để thực hiện điều này là phương pháp thứ tư. sử dụng chức năng

# Method 1: List Comprehension Random Float List [0, 1]
import random
randlist = [random.random[] for _ in range[10]]
15 khi nó được triển khai để thực hiện chính xác điều này

Nhưng theo chủ quan, tôi sẽ sử dụng phương pháp thứ nhất hoặc thứ hai dựa trên khả năng hiểu danh sách để tạo danh sách các số nguyên hoặc số thực ngẫu nhiên

Tại sao? . Trên thực tế, tôi không muốn lãng phí quá nhiều năng lượng để cố nhớ các chức năng mã không cải thiện khả năng đọc cũng như hiệu quả của mã của tôi

Đi đâu từ đây?

Đủ lý thuyết. Hãy thực hành một số

Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa

Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế

Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?

🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn

Tham gia hội thảo trên web miễn phí ngay bây giờ

Chris

Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính

Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới

Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây

Chủ Đề