我可以根据两个值将列表理解缩减为两个列表吗?

3 python python-2.5

我有以下代码.

sum_review = reduce(add,[book['rw'] for book in books])
sum_rating = reduce(add,[book['rg'] for book in books])
items = len(books)
avg_review = sum_review/items
avg_rating = sum_rating/items
Run Code Online (Sandbox Code Playgroud)

我想要的是这个.

sum_review,sum_rating = reduce(add,([book['rw'],[book['rg']) for book in books])
items = len(books)
avg_review = sum_review/items
avg_rating = sum_rating/items
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.如何在没有常规循环的情况下解决这种冗余问题?

Mar*_*ers 9

我在这里避免使用reduce.对于这么简单的用法sum:

sum_review = sum(book['rw'] for book in books)
sum_rating = sum(book['rg'] for book in books)
Run Code Online (Sandbox Code Playgroud)

在我看来,这个更简单的版本不需要重构来删除冗余.只有两个项目(rwrg)我认为最好留下它原样.