Khi tôi cần thêm một số mặt hàng giống hệt nhau vào danh sách tôi sử dụng list.extend:list.extend và danh sách hiểu
a = ['a', 'b', 'c']
a.extend(['d']*3)
quả
['a', 'b', 'c', 'd', 'd', 'd']
Nhưng, làm thế nào để thực hiện tương tự với danh sách bao quát?
a = [['a',2], ['b',2], ['c',1]]
[[x[0]]*x[1] for x in a]
quả
[['a', 'a'], ['b', 'b'], ['c']]
Nhưng tôi cần điều này một
['a', 'a', 'b', 'b', 'c']
Bất kỳ ý tưởng?
Cảm ơn! Nó hoạt động nhưng tôi thậm chí không hiểu cách đọc biểu thức này. – Stas
'cho x trong a' trích xuất từng phần tử của' a' từng phần vào 'x'. 'for y in ...' tạo một danh sách mới từ 'x' và trích xuất từng phần tử của nó thành' y'. Tất cả đều xảy ra cùng một lúc (nhiều hay ít hơn), khiến cho tất cả đều ở cùng mức độ làm tổ. –
Nó thường là rõ ràng hơn với giải nén: [y cho (mục, thời gian) trong một cho y trong [item] * lần] – tokland