Xáo trộn JSON Python

Xáo trộn đề cập đến việc sắp xếp lại các phần tử theo thứ tự ngẫu nhiên, có nghĩa là không có trình tự cụ thể nào được xem xét trong khi sắp xếp các phần tử

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách xáo trộn các phần tử của danh sách bằng Python

Các cách tiếp cận khác nhau mà chúng tôi sẽ sử dụng để xáo trộn các phần tử như sau-

  1. Sử dụng thuật toán xáo trộn Fisher-Yates
  2. Sử dụng xáo trộn()
  3. Sử dụng mẫu()
  4. Lựa chọn ngẫu nhiên các phần tử và sau đó thêm chúng vào danh sách

Chúng ta sẽ thảo luận chi tiết từng phương pháp

Vì vậy, hãy bắt đầu với cái đầu tiên,

Sử dụng thuật toán xáo trộn Fisher-Yates

đầu ra

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [11, 43, 20, 19, 10, 22]

Giải trình

Hãy hiểu những gì chúng tôi đã làm trong chương trình trên

  1. Ở bước đầu tiên, chúng tôi đã nhập mô-đun ngẫu nhiên
  2. Sau này, chúng tôi có một danh sách khởi tạo có chứa các giá trị số khác nhau
  3. Trong bước tiếp theo, chúng tôi đã sử dụng vòng lặp for và sau đó chọn ngẫu nhiên một phần tử rồi hoán đổi phần tử đó với phần tử có chỉ số ngẫu nhiên
  4. Cuối cùng, chúng tôi đã hiển thị danh sách xáo trộn ở đầu ra

Sử dụng xáo trộn()

Trong phương pháp thứ hai, chúng ta sẽ xem cách shuffle() có thể được sử dụng để xáo trộn các phần tử trong danh sách của chúng ta

Hãy xem xét chương trình đưa ra dưới đây-

đầu ra

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [22, 10, 20, 11, 19, 43]

Giải trình

Hãy hiểu những gì chúng tôi đã làm trong chương trình trên,

  1. Ở bước đầu tiên, chúng tôi đã nhập mô-đun ngẫu nhiên
  2. Sau này, chúng tôi có một danh sách khởi tạo có chứa các giá trị số khác nhau
  3. Trong bước tiếp theo, chúng tôi đã sử dụng shuffle() và chuyển 'list_values1' làm tham số
  4. Cuối cùng, chúng tôi đã hiển thị danh sách xáo trộn ở đầu ra

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

Trong cách tiếp cận thứ ba, chúng tôi sẽ sử dụng ngẫu nhiên. sample() để làm điều tương tự

Chương trình sau đây minh họa cách nó có thể được thực hiện-

đầu ra

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [43, 20, 19, 11, 10, 22]

Giải trình

Đã đến lúc hiểu chương trình trên-

  1. Ở bước đầu tiên, chúng tôi đã nhập mô-đun ngẫu nhiên
  2. Sau này, chúng tôi có một danh sách khởi tạo có chứa các giá trị số khác nhau
  3. Trong bước tiếp theo, chúng tôi đã sử dụng mẫu () và chuyển 'list_values1' và độ dài của danh sách làm tham số của nó
  4. Cuối cùng, chúng tôi đã hiển thị danh sách xáo trộn ở đầu ra

Cuối cùng, đã đến lúc thảo luận về cách tiếp cận cuối cùng, nó thực sự là một cách thú vị, hãy xem cách…

Lựa chọn ngẫu nhiên các phần tử và sau đó thêm chúng vào danh sách

đầu ra

The initialized list is :  [11, 20, 19, 43, 22, 10]
The shuffled list is :  [19, 22, 20, 43, 10, 11]

Giải trình

Bây giờ, hãy xem lời giải thích của mã này,

  1. Ở bước đầu tiên, chúng tôi đã nhập mô-đun ngẫu nhiên
  2. Sau đó, chúng tôi có một danh sách được khởi tạo chứa các giá trị số khác nhau và sau đó tính toán độ dài của danh sách
  3. Trong bước tiếp theo, chúng tôi đã sử dụng mẫu () và chuyển 'list_values1' và độ dài của danh sách làm tham số của nó
  4. Bây giờ chúng ta đã sử dụng vòng lặp for để chọn ngẫu nhiên một phần tử, xóa phần tử đó và sau đó thêm phần tử đó vào danh sách
  5. Cuối cùng, chúng tôi đã hiển thị danh sách xáo trộn ở đầu ra

Phần kết luận

Trong hướng dẫn này, chúng ta đã học các phương pháp khác nhau để xáo trộn các phần tử của danh sách trong Python


Gọi random.shuffle(list) để ngẫu nhiên hóa thứ tự của các phần tử trong danh sách sau khi nhập mô-đun ngẫu nhiên với import random. Điều này xáo trộn danh sách tại chỗ. Nếu bạn cần tạo một danh sách mới với các phần tử được xáo trộn và giữ nguyên danh sách ban đầu, hãy sử dụng cắt lát list[:] để sao chép danh sách và gọi hàm xáo trộn trên danh sách đã sao chép

Làm cách nào để xáo trộn danh sách trong Python?

Xáo trộn JSON Python

Xem video này trên YouTube

Vấn đề. Bạn có một danh sách Python và bạn muốn sắp xếp lại ngẫu nhiên tất cả các phần tử?

Giải pháp. Không thành vấn đề, hãy sử dụng thư viện random của Python

Xáo trộn JSON Python

Thí dụ. Đây là một số mã để chỉ cho bạn cách thực hiện việc này

import random

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

random.shuffle(a)
print(a)
# [6, 8, 5, 7, 2, 3, 9, 1, 4, 0]

random.shuffle(a)
print(a)
# [8, 4, 9, 2, 6, 3, 5, 7, 0, 1]

random.shuffle(a)
print(a)
# [1, 0, 7, 2, 4, 9, 5, 8, 3, 6]

random.shuffle(a)
print(a)
# [4, 6, 0, 5, 1, 3, 9, 2, 7, 8]

Vì các phần tử được sắp xếp lại ngẫu nhiên nên kết quả sẽ khác khi bạn thực thi cùng một đoạn mã. Giống như bất kỳ chức năng ngẫu nhiên nào, hành vi là không xác định. Cũng xin lưu ý rằng bản thân danh sách đã bị xáo trộn—không có danh sách mới nào được tạo

Bạn có thể tự mình thử trong trình bao Python tương tác sau

Làm cách nào để xáo trộn và trả về một danh sách mới?

Phương thức random.shuffle(a) mặc định sửa đổi danh sách hiện có a. Nó hoạt động tại chỗ. Vì vậy, điều gì sẽ xảy ra nếu bạn muốn xáo trộn danh sách ban đầu nhưng trả về một danh sách mới trong khi không thay đổi các thành phần danh sách ban đầu?

Không thành vấn đề—hãy sử dụng tính năng cắt để sao chép danh sách

import random

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

b = a[:]
random.shuffle(b)
print(b)

Bài tập. Đoán xem—đầu ra của đoạn mã này là gì?

Những bài viết liên quan

  • Làm thế nào để sao chép một danh sách?
  • cắt lát
  • Danh sách Python [Hướng dẫn cơ bản]
  • Mô-đun ngẫu nhiên đã giải thích
  • Làm cách nào để xáo trộn hai mảng đồng thời trong Python?

Đ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ờ

Xáo trộn JSON Python

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

shuffle() trong Python là gì?

Phương thức xáo trộn ngẫu nhiên Python() . Ghi chú. Phương thức này thay đổi danh sách ban đầu, nó không trả về danh sách mới. takes a sequence, like a list, and reorganize the order of the items. Note: This method changes the original list, it does not return a new list.

Xáo trộn có phải là một chức năng trong Python không?

shuffle() trong Python. Shuffle() là một phương thức sẵn có của mô-đun ngẫu nhiên . Nó được sử dụng để xáo trộn một chuỗi (danh sách). Xáo trộn danh sách các đối tượng có nghĩa là thay đổi vị trí của các phần tử của chuỗi bằng Python.