Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Tạo ngẫu nhiên N list con kích thước K từ list gốc

Giới thiệu

Để tạo ngẫu nhiên N list con, mỗi list kích thước K, từ một list gốc, ta dùng random.shuffle trong generator function với yield.

Ví dụ minh họa

from random import shuffle

def gen_random_list(my_val, K):
    while True:
        shuffle(my_val)
        yield my_val[:K]

my_list = [12, 45, 76, 32, 45, 88, 99, 0, 1]
print("List gốc:", my_list)

K, N = 4, 5
print("K (kích thước list con):", K)
print("N (số list con):", N)

my_result = []
for _ in range(N):
    my_result.append(next(gen_random_list(my_list, K)))

print("N list con ngẫu nhiên:")
print(my_result)

Kết quả đầu ra

List gốc: [12, 45, 76, 32, 45, 88, 99, 0, 1]
K (kích thước list con): 4
N (số list con): 5
N list con ngẫu nhiên:
[[88, 76, 99, 12], [12, 99, 32, 76], [32, 76, 12, 99], [32, 45, 0, 12], [76, 0, 1, 45]]

Giải thích

  • gen_random_list là generator vô hạn: mỗi lần shuffle list gốc, yield K phần tử đầu.
  • next(generator) lấy một list con.
  • Lặp N lần để thu N list con.
  • Lưu ý: shuffle thay đổi list gốc in-place, nên các lần sau list đã bị xáo trộn.