Tôi khá chắc chắn nên có một cách Pythonic hơn để làm điều này - nhưng tôi không thể nghĩ ra một: Làm thế nào tôi có thể hợp nhất một danh sách hai chiều thành một danh sách một chiều? Sắp xếp giống như zip/map nhưng với nhiều hơn hai vòng lặp.Việc hợp nhất/thêm danh sách bằng Python
Ví dụ - Tôi đã danh sách sau đây:
array = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Tôi muốn có
result = [12, 15, 18] # [1+4+7, 2+5+8, 3+6+9]
Cho đến nay những gì tôi đã đưa ra là:
def add_list(array):
number_items = len(array[0])
result = [0] * number_items
for index in range(number_items):
for line in array:
result[index] += line[index]
return result
Nhưng đó trông không thật tao nhã/Pythonic với tôi. Ngoài việc không kiểm tra xem tất cả các "dòng" trong mảng 2D có cùng chiều dài, có thể được thêm vào nhau hay không, vv Điều gì sẽ là một cách tốt hơn để làm điều đó?
Hm, trong khi thú vị, đó không thực sự là câu trả lời cho câu hỏi này (và do đó có thể thu hút những người không thích). Bạn có thể, ví dụ, đặt câu hỏi "Làm thế nào tôi có thể xen kẽ một số danh sách?" và tự trả lời. Có thể sử dụng một ví dụ sử dụng nhiều hơn hai danh sách, nếu không ai đó sẽ gợi ý '", ". Join (a)'. –
Đồng ý Tim. Đó là các apropros của 'q & a' này được chỉ ra bởi một luồng giao dịch các danh sách xen kẽ, nhưng được đánh dấu là một bản sao của câu hỏi này! Tôi đã sử dụng ',' trong ví dụ, chỉ để đơn giản, mã của tôi yêu cầu danh sách thực sự của các lớp do người dùng định nghĩa để xen kẽ, nhưng điều đó sẽ khó có thể tha thứ trong tóm tắt. – F1Rumors