Nhiều vòng lặp trong list comprehension trong Python
Làm việc với list comprehension cho phép viết nhiều vòng lặp để tạo ra danh sách mới. Vòng lặp đầu tiên được chỉ định sẽ là vòng lặp bên ngoài, trong đó vòng lặp thứ hai được viết sẽ được chạy. Điều này có nghĩa là vòng lặp thứ hai sẽ được lồng vào vòng lặp đầu tiên.
Hãy tạo một danh sách các tuple.
Để làm điều này, trước tiên chúng ta viết hai biến i
và j, được đặt trong dấu ngoặc tròn,
biểu thị một tuple. Sau đó, chúng ta chạy một vòng lặp
với biến i, biến này sẽ
tạo ra số đầu tiên của tuple trong
phạm vi từ 1 đến 3. Sau đó
viết một vòng lặp, trong đó số thứ hai j
được tạo từ 1 đến 2:
lst = [(i, j) for i in range(1, 4) for j in range(1, 3)]
print(lst)
Kết quả thực thi mã:
[(1, 1), (1, 2), (2, 1), (2, 2), (3, 1), (3, 2)]
Cho hai danh sách:
lst1 = ['1', '2']
lst2 = ['a', 'b', 'c']
Sử dụng list comprehension, hãy tạo một danh sách mới từ chúng:
[('1', 'a'), ('1', 'b'), ('1', 'c'), ('2', 'a'), ('2', 'b'), ('2', 'c')]