2013-02-21 29 views

Trả lời

1
>>> a = {'a' : 5, 'b': 8} 
>>> sum(value for _, value in a.items() if value > 0) 
9

Hãy thử sử dụng các phương pháp values vào từ điển (mà trả về một máy phát điện bằng Python 3.x), lặp lại qua từng giá trị và tổng hợp nếu nó là lớn hơn 0 (hoặc bất kỳ tình trạng của bạn là):

In [1]: d = {'one': 1, 'two': 2, 'twenty': 20, 'negative 4': -4} 

In [2]: sum(v for v in d.values() if v > 0) 
Out[2]: 23 
+0

Chà, đó có thể là ví dụ tốt nhất mà tôi đã nhìn thấy trong một giải thích ngắn gọn bằng tiếng Anh để ánh xạ tới biểu thức trình tạo theo cách rõ ràng đến mức bạn thậm chí không cần phải nói đó là những gì bạn đang làm. Ước gì tôi có thể cung cấp nhiều hơn +1. – abarnert

+0

@abarnert Xuất phát từ bạn, đó là lời khen, cảm ơn :) – RocketDonkey

+0

tuyệt vời. cảm ơn. – user2097496

Các vấn đề liên quan