【问题标题】:Add values to dict and increase list item's value by 1 if key is already in dict (python)如果键已经在 dict (python) 中,则将值添加到 dict 并将列表项的值增加 1
【发布时间】:2017-02-21 19:30:06
【问题描述】:

将值添加到 dict 并使用简单的 if 语句对值 + 1 如果键存在则可以正常工作:

d = {word: (frequency, wordList[1]) for frequency, word in sorteddict}
for key, value in d.items():
    my_dict[key, value] = my_dict[key, value] + 1 if key in my_dict else value

我想遍历字典“d”,将所有键值对添加到字典“my_dict”。

我遇到的问题是字典是键:列表对,如果键存在,我只想增加 list[0] 的值。例如:

d = {'smith': (1, 'jones')}

my_dict = {'smith': (2, 'jones')}

my_dict 已经包含密钥“smith”,因此逻辑如下:

+ 1 to list[0] else 1

【问题讨论】:

  • 元组中的第二个值是多少?
  • 这些不是列表,这些是元组!你不能增加元组!
  • 这个问题有点难以理解。你的意思是这样的吗? {x:(y[0]+1,y[1]) for x,y in d.items()}
  • @Nullman:注意这里有两个字典:dmy_dict...
  • 是的,感谢您指出元组/列表错误!我现在已经更正了。

标签: python dictionary


【解决方案1】:

澄清问题和答案: 问题是有 2 个字典 dmy_dict。每个值都是一个包含 2 个项目的元组。我们想要的是生成一个新的字典,它具有 d 的键和值,但如果 my_dict 中存在键,则值元组的第一项增加 1 或如果没有,则设置为 1。我们将这样实现:

{x: (y[0] + 1 if x in my_dict else 1, y[1]) for x, y in d.items()}

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 2020-10-12
    • 1970-01-01
    • 2016-04-08
    • 2021-12-10
    • 1970-01-01
    • 2020-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多