Tìm hiểu cách sử dụng Python để xáo trộn một danh sách, bao gồm cả khả năng tạo lại một kết quả nhất định và xáo trộn các danh sách trong Python.

Bạn đang xem : cách ngẫu nhiên hóa python danh sách

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để xáo trộn danh sách, do đó ngẫu nhiên hóa các phần tử danh sách Python. Đối với điều này, bạn sẽ học cách sử dụng thư viện Python random , đặc biệt là các phương thức .shuffle () .random () .

Biết cách xáo trộn danh sách và tạo ra một kết quả ngẫu nhiên là một kỹ năng vô cùng hữu ích. Ví dụ: nó có thể vô cùng hữu ích trong việc phát triển một trò chơi Python mà bạn cần chọn một kết quả ngẫu nhiên. Nó cũng có thể có các ứng dụng vô cùng hữu ích trong công việc liên quan đến dữ liệu, nơi bạn có thể cần lấy các kết quả ngẫu nhiên.

Câu trả lời nhanh: Sử dụng random.shuffle ()

Trả lời nhanh - Trộn danh sách Python

Sự khác biệt giữa .shuffle là gì và .sample?

Python được tích hợp sẵn một thư viện cực kỳ hữu ích để tạo ra tính ngẫu nhiên, được gọi là random . Trong suốt hướng dẫn này, bạn sẽ học cách sử dụng các hàm random.shuffle () random.sample () . Tuy nhiên, trước khi đi sâu vào cách sử dụng chúng, chúng ta hãy nhanh chóng khám phá sự khác biệt là gì.

Cả hai hàm đều trả về danh sách được sắp xếp ngẫu nhiên, nhưng cách chúng trả về là khác nhau :

  • random.shuffle () xáo trộn danh sách ban đầu, nghĩa là việc xáo trộn có thể được thực hiện tại chỗ
  • random.sample () trả về danh sách xáo trộn mới, dựa trên danh sách ban đầu

random.sample () cũng có thể được sử dụng để xáo trộn các chuỗi và bộ giá trị, vì nó tạo ra một danh sách mới, do đó cho phép bạn làm việc trên các kiểu dữ liệu bất biến.

Bây giờ, hãy cùng tìm hiểu cách xáo trộn danh sách bằng Python!

​​Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi để tạo kiểu cho Gấu trúc tổng quan toàn diện của chúng tôi về Pivot Table in Pandas !

Ngẫu nhiên một danh sách Python và gán lại nó cho chính nó

Hàm random.shuffle () giúp bạn dễ dàng xáo trộn các mục của danh sách bằng Python. Bởi vì hàm hoạt động tại chỗ, chúng tôi không cần phải gán lại danh sách cho chính nó, nhưng nó cho phép chúng tôi dễ dàng ngẫu nhiên hóa các phần tử của danh sách.

Hãy xem phần này trông như thế nào:

 # Trộn danh sách bằng random.shuffle ()
nhập ngẫu nhiên

a_list = ['welcome', 'to', 'datagy', 'where', 'you', 'will', 'learning', 'Python', 'và', 'nữa']
random.shuffle (a_list)

print (a_list)
# Trả về: ['more', 'will', 'Python', 'welcome', 'learning', 'you', 'where', 'to', 'datagy', 'và'] 

Những gì chúng tôi đã làm ở đây là:

  1. Tạo danh sách mới
  2. Đã áp dụng hàm random.shuffle () cho danh sách đó
  3. In kết quả để xác minh việc xáo trộn

Xin lưu ý rằng nếu bạn đang làm theo ví dụ trên, danh sách được sắp xếp ngẫu nhiên của bạn có thể sẽ trông khác!

Trong phần tiếp theo, bạn sẽ học cách sử dụng hàm random.sample () để tạo ngẫu nhiên một danh sách bằng Python.

​​ Bạn muốn tìm hiểu thêm về cách hiểu danh sách Python? Hãy xem hướng dẫn chuyên sâu này bao gồm tất cả mọi thứ bạn cần biết, với các ví dụ thực tế. Nhiều người học bằng hình ảnh hơn, hãy xem hướng dẫn trên YouTube của tôi tại đây .

Shuffle một danh sách Python và gán nó vào một danh sách mới

Hàm random.sample () được sử dụng để lấy mẫu một số lượng mục từ một đối tượng giống chuỗi trong Python. Chức năng chọn các mục này một cách ngẫu nhiên.

Hãy xem nhanh hàm này trông như thế nào:

random.sample (có thể lặp lại, k)

Trong trường hợp này, có thể lặp lại sẽ là danh sách mà chúng tôi muốn xáo trộn và k đề cập đến số lượng mục chúng tôi muốn chọn. Bởi vì chúng tôi muốn trả lại danh sách đầy đủ theo thứ tự ngẫu nhiên, chúng tôi sẽ chuyển độ dài của danh sách vào tham số k .

Hãy xem cách chúng ta có thể sử dụng hàm .sample () để tạo ngẫu nhiên danh sách Python:

 # Trộn danh sách bằng random.sample ()
nhập ngẫu nhiên

a_list = ['welcome', 'to', 'datagy', 'where', 'you', 'will', 'learning', 'Python', 'và', 'nữa']
shuffled = random.sample (a_list, len (a_list))

in (xáo trộn)
# Trả về: ['where', 'you', 'welcome', 'to', 'more', 'Python', 'và', 'datagy', 'will', 'learning'] 

Hãy xem cách chúng tôi đã quản lý để ngẫu nhiên hóa các phần tử danh sách Python của mình:

  1. Chúng tôi đã tạo danh sách của mình và gán nó cho a_list
  2. Chúng tôi đã tạo một biến mới shuffled lấy ngẫu nhiên. hàm sample () . Chúng tôi đã chuyển danh sách và độ dài của danh sách vào hàm. Bằng cách sử dụng hàm len () , chúng tôi có thể giữ cho phương thức này động, vì độ dài của danh sách có thể thay đổi.

Trong phần tiếp theo, bạn sẽ học cách tái tạo kết quả danh sách xáo trộn bằng Python.

​​ Bạn muốn tìm hiểu cách in một tệp JSON bằng Python? Tìm hiểu ba phương pháp khác nhau để thực hiện điều này bằng cách sử dụng hướng dẫn chuyên sâu này tại đây .

Tạo lại Kết quả Danh sách Python Bị xáo trộn

Khi làm việc với các kết quả ngẫu nhiên, đôi khi bạn muốn tạo lại một kết quả. Trong ví dụ dưới đây, bạn sẽ học cách có thể tạo lại danh sách bị xáo trộn.

Chúng tôi sẽ sử dụng hàm random.seed () để tạo ra kết quả có thể lặp lại.

Hãy xem phần này trông như thế nào:

 # Sao chép danh sách xáo trộn ngẫu nhiên bằng Python
nhập ngẫu nhiên

a_list = ['welcome', 'to', 'datagy', 'where', 'you', 'will', 'learning', 'Python', 'và', 'nữa']

random.seed (1)

cho tôi trong phạm vi (5):
    random.shuffle (a_list)
    print (a_list)

# Trả về:
# ['learning', 'and', 'more', 'Python', 'will', 'where', 'welcome', 'you', 'to', 'datagy']
# ['will', 'to', 'more', 'welcome', 'where', 'datagy', 'learning', 'you', 'và', 'Python']
# ['you', 'and', 'learning', 'Python', 'datagy', 'will', 'more', 'to', 'welcome', 'where']
# ['to', 'learning', 'welcome', 'and', 'datagy', 'you', 'will', 'where', 'Python', 'more']
# ['welcome', 'to', 'datagy', 'more', 'will', 'where', 'learning', 'you', 'và', 'Python'] 

Bây giờ, có vẻ như các danh sách được in ra không phải là ngẫu nhiên. Tuy nhiên, nếu chúng tôi chạy lại chương trình của mình ở trên, thì chương trình sẽ trả về cùng một danh sách được xáo trộn ngẫu nhiên mỗi lần ! Hàm random.seed () cho phép chúng tôi tạo một giá trị cơ sở xác định tính ngẫu nhiên giả của các hàm theo sau nó. Bởi vì, trong trường hợp này, chúng tôi đã gán cho nó một giá trị cụ thể là 2 , chúng tôi có thể tái tạo tính ngẫu nhiên.

Trong phần tiếp theo, bạn sẽ học cách xáo trộn danh sách các danh sách trong Python.

​​ Bạn muốn tìm hiểu thêm về vòng lặp for trong Python? Hãy xem hướng dẫn chuyên sâu của tôi đưa bạn từ người mới bắt đầu đến người dùng for-vòng nâng cao! Bạn muốn xem video thay thế? Xem hướng dẫn trên YouTube của tôi tại đây .

Trộn một Danh sách Python

Trong Python, bạn sẽ thường gặp các danh sách đa chiều, thường được gọi là danh sách các danh sách. Chúng ta có thể dễ dàng làm điều này bằng cách sử dụng vòng lặp for. Bằng cách lặp lại từng danh sách trong danh sách, chúng ta có thể dễ dàng áp dụng hàm random.shuffle () để ngẫu nhiên hóa các phần tử của từng danh sách con.

Hãy xem phần này trông như thế nào:

 # Trộn danh sách danh sách bằng Python
nhập ngẫu nhiên

a_list = [['apple', 'cam', 'nho'], ["chuối", "dưa", "quýt"], ["chanh", "chanh", "dâu tây"]]

cho danh sách phụ trong a_list:
    random.shuffle (danh sách phụ)

print (a_list)

# Trả về: [['nho', 'cam', 'táo'], ['dưa', 'chuối', 'quýt'], ['dâu', 'chanh', 'chanh']] 

Mặc dù chúng tôi cũng có thể thực hiện điều này bằng cách sử dụng khả năng hiểu danh sách, nhưng cú pháp không chỉ định lại khả năng hiểu danh sách hơi khó hiểu và không trực quan. Vì lý do này, chúng tôi đã chọn sử dụng vòng lặp for ở đây vì chúng tôi phải luôn cố gắng để có thể đọc được.

Trong phần tiếp theo, bạn sẽ học cách xáo trộn nhiều danh sách với cùng một thứ tự xáo trộn.

​​ Muốn tìm hiểu cách sử dụng Python zip () hàm lặp qua hai danh sách? Hướng dẫn này cho bạn chính xác những gì zip () hàm thực hiện và chỉ cho bạn một số cách sáng tạo để sử dụng hàm.

Trộn nhiều danh sách với Thứ tự xáo trộn tương tự

Giả sử bạn có hai danh sách: một danh sách chứa loại trái cây và danh sách kia ghi số loại trái cây bạn có. Bạn muốn xáo trộn danh sách nhưng bạn muốn tính toàn vẹn của tham chiếu vẫn đúng (nghĩa là chỉ mục 0 của cả hai danh sách sẽ được xáo trộn thành chỉ mục giống nhau trong kết quả xáo trộn).

Để đạt được điều này, chúng tôi sẽ:

  1. Hợp nhất hai danh sách trong một danh sách bằng cách sử dụng hàm zip ()
  2. Trộn nội bộ danh sách
  3. Giải nén danh sách các danh sách thành các danh sách riêng lẻ

Hãy xem cách chúng tôi có thể thực hiện việc này:

 # Trộn hai danh sách theo cùng một thứ tự
nhập ngẫu nhiên

trái cây = ['táo', 'nho', 'cam', 'chuối']
số lượng = [50, 40, 60, 70]

merge = list (zip (hoa quả, số lượng))
# Cái này trông giống như: [('táo', 50), ('nho', 40), ('cam', 60), ('chuối', 70)]

random.shuffle (đã hợp nhất)

hoa quả = [item [0] cho mặt hàng đã hợp nhất]
số lượng = [mặt hàng [1] cho mặt hàng được hợp nhất]

in (hoa quả)
in (số lượng)

# Trả về:
# ['chuối', 'cam', 'táo', 'nho']
# [70, 60, 50, 40] 

Chúng tôi có thể thấy rằng chúng tôi đã sử dụng tốt cả hàm zip () cũng như khả năng hiểu danh sách Python để thực hiện điều này.

​​ Bạn cần tự động đổi tên tệp? Xem hướng dẫn chuyên sâu này về cách sử dụng pathlib để đổi tên tệp. Không chỉ là người học trực quan, toàn bộ hướng dẫn cũng có sẵn dưới dạng video trong bài đăng!

Kết luận

Trong hướng dẫn này, bạn đã học cách sử dụng Python để xáo trộn ngẫu nhiên một danh sách, do đó sắp xếp các mục của nó theo thứ tự ngẫu nhiên. Đối với điều này, bạn đã học cách sử dụng thư viện Python random , đặc biệt là các phương thức .shuffle () .random () .

Để tìm hiểu thêm về thư viện random , hãy xem tài liệu chính thức tại đây .


Xem thêm những thông tin liên quan đến chủ đề cách ngẫu nhiên hóa python danh sách

Python Tutorial: Generate Random Numbers and Data Using the random Module

alt

  • Tác giả: Corey Schafer
  • Ngày đăng: 2017-08-29
  • Đánh giá: 4 ⭐ ( 1973 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: In this Python Programming Tutorial, we will be learning how to generate random numbers and choose random data from lists using the random module. I personally use the random module pretty often in my tutorials to generate random data. This can also be used be games, simulations, and plenty of other useful tasks. Let's get started.

    The code from this video can be found at:
    https://github.com/CoreyMSchafer/code_snippets/tree/master/Python-Random

    ✅ Support My Channel Through Patreon:
    https://www.patreon.com/coreyms

    ✅ Become a Channel Member:
    https://www.youtube.com/channel/UCCezIgC97PvUuR4_gbFUs5g/join

    ✅ One-Time Contribution Through PayPal:
    https://goo.gl/649HFY

    ✅ Cryptocurrency Donations:
    Bitcoin Wallet - 3MPH8oY2EAgbLVy7RBMinwcBntggi7qeG3
    Ethereum Wallet - 0x151649418616068fB46C3598083817101d3bCD33
    Litecoin Wallet - MPvEBY5fxGkmPQgocfJbxP6EmTo5UUXMot

    ✅ Corey's Public Amazon Wishlist
    http://a.co/inIyro1

    ✅ Equipment I Use and Books I Recommend:
    https://www.amazon.com/shop/coreyschafer

    ▶️ You Can Find Me On:
    My Website - http://coreyms.com/
    My Second Channel - https://www.youtube.com/c/coreymschafer
    Facebook - https://www.facebook.com/CoreyMSchafer
    Twitter - https://twitter.com/CoreyMSchafer
    Instagram - https://www.instagram.com/coreymschafer/

    Python

Cách Chọn Tên Ngẫu nhiên Từ Danh sách Excel

  • Tác giả: unitrain.edu.vn
  • Đánh giá: 4 ⭐ ( 1450 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

CHƯƠNG VI - PYTHON VÀ TRÒ CHƠI NGẪU NHIÊN (RANDOM)

  • Tác giả: hungviet-vhr.org
  • Đánh giá: 4 ⭐ ( 2832 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Dạy trẻ lập trình - Ngôn ngữ Python - Soạn bởi NGUYỄN VĂN KHIÊM.

[TIP]Kỹ thuật random, tạo danh sách (mảng) ngẫu nhiên trong java - Cộng đồng Java Việt Nam

  • Tác giả: www.congdongjava.com
  • Đánh giá: 5 ⭐ ( 5054 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ở bài viết này JackV sẽ hướng dẫn các bạn 3 kỹ thuật random thường dùng:
    1. Random tự nhiên, có thể lặp lại.
    2. Random có thể lặp lại nhưng 2 phần tử liên...

One moment, please...

  • Tác giả: www.dammio.com
  • Đánh giá: 4 ⭐ ( 9070 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Một số đoạn code Python phổ biến bạn nên thuộc lòng

  • Tác giả: topdev.vn
  • Đánh giá: 3 ⭐ ( 7708 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Dưới đây là một số Đoạn code Python ngắn mình thấy cực kỳ hữu ích trong công việc hàng ngày của mình.

Cách tạo mảng trong NumPy: Hướng dẫn cho người mới bắt đầu

  • Tác giả: gialaipc.com.vn
  • Đánh giá: 4 ⭐ ( 6668 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [ad_1]
    NumPy là viết tắt của Numerical Python. Đó là một thư viện Python mã nguồn mở được sử dụng trong nhiều lĩnh vực

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Python 3 - Hàm - cách gọi một hàm trong python 3

By ads_php