簡體   English   中英

將值重新分配給字典的pythonic方法

[英]pythonic way of reassigning values to dictionary

我有一本以列表為值的字典:

my_dict = {1: [2,3], 2: [4, 5], 3: [6, 7]}

我想更新字典以將值更新為舊列表值的總和:

my_dict = {1: 5, 2: 9, 3: 13}

最有效/最有效的方法是什么? 我通常要做的是:

for key in my_dict:
    my_dict[key] = sum(my_dict[key])

有更好的方法嗎?

您可以使用字典理解:

my_dict = {1: [2,3], 2: [4, 5], 3: [6, 7]}
new_d = {a:sum(b) for a, b in my_dict.items()}

輸出:

{1: 5, 2: 9, 3: 13}

您可以使用reduce代替sum

from functools import reduce

my_dict = {1: [2,3], 2: [4, 5], 3: [6, 7]}
final = {k: reduce(lambda x,y: x+y, v) for k,v in my_dict.items()}

輸出:

{1: 5, 2: 9, 3: 13}

否則,您可以參考此線程以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM