从字典中的所有值减去1。

3

我有一个像下面这样的字典:

dict = {'hi':1, 'hi2':2, 'lskdjf':3}

这样就可以连续进行一百万个值的转换了。

我想把这个转化为一个以0开始计数的字典。

例如,期望的输出如下:

dict = {'hi':0, 'hi2':1, 'lskdjf':2}

如何高效地完成这个任务?

{k: v-1 for k, v in my_dict.items()}{k: v-1 for k, v in my_dict.items()} - Stephen Rauch
5
更新生成字典代码本身是否是一种选择? - chepner
或者你之后在使用字典时只需减去1? - Colin 't Hart
1个回答

6

您可以迭代字典进行更新...

for k in dict_:
    dict_[k] -= 1

...或使用字典推导式创建一个新的字典。

new_dict = {k: v - 1 for k, v in dict_.items()}

在这两种情况下,请注意我将您的变量名替换为dict_,以避免覆盖内置的dict名称。


迭代字典项更高效(并且可能更清晰),例如 for k, v in dict_items: dict_[k] = v-1 - jpp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接