Tôi có một danh sách các hàng tương tự như sau:tổng mỗi giá trị trong một danh sách các hàng
l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 0)]
Tôi muốn tạo ra một đơn giản một-liner mà sẽ cung cấp cho tôi những kết quả sau:
r = (25, 20) or r = [25, 20] # don't care if tuple or list.
nào sẽ giống như cách làm như sau:
r = [0, 0]
for t in l:
r[0]+=t[0]
r[1]+=t[1]
tôi chắc chắn nó là một cái gì đó rất đơn giản, nhưng tôi không thể nghĩ về nó.
Lưu ý: Tôi nhìn câu hỏi tương tự đã:
How do I sum the first value in a set of lists within a tuple?
How do I sum the first value in each tuple in a list of tuples in Python?
có thể du plicate của [Python element-wise tuple hoạt động như tổng hợp] (http://stackoverflow.com/questions/497885/python-element-wise-tuple-operations-like-sum) –
@CiroSantilli: nó không phải là một bản sao. Câu hỏi mà bạn đã liên kết hoạt động với * hai * bộ dữ liệu. Câu hỏi này về danh sách * của bộ dữ liệu. Sự chuyển vị là phần thiết yếu của giải pháp. Mặc dù các câu trả lời làm việc gần như nguyên văn trong cả hai trường hợp. Tuy nhiên 'a, b' tuples và' a_list_of_tuples' khác nhau (sự khác biệt có thể được phơi bày trong giải pháp nào là hiệu quả nhất). – jfs