首页 新闻 会员 周边

python 如何对字典中所有大于1的value减1

0
悬赏园豆:80 [待解决问题]

现在有这样一个字典:
{'A': 1, 'B': 1, 'C': 2, 'D': 1, 'E': 1, 'F': 1}
我想输出:
{'A': 1, 'B': 1, 'C': 1, 'D': 1, 'E': 1, 'F': 1}
也就是对大于一的value,减1,再输出新的字典
如果value是1的话就不用管。

例子:

input:

{'A': 3, 'B': 2, 'C': 5, 'D': 1, 'E': 4, 'F': 1}

output:

{'A': 2, 'B': 1, 'C': 4, 'D': 1, 'E': 3, 'F': 1}

ed3的主页 ed3 | 初学一级 | 园豆:24
提问于:2021-04-07 13:41
< >
分享
所有回答(7)
0
for key in obj
  if(obj[key]>1)
    obj[key] = obj[key]-1;
czd890 | 园豆:14412 (专家六级) | 2021-04-07 14:59
0

遍历字典并在便利的过程中将值减去1

魔露西 | 园豆:616 (小虾三级) | 2021-04-07 16:45
0
d = {'A': 1, 'B': 1, 'C': 1, 'D': 1, 'E': 1, 'F': 1}
result = {k: d[k]-1 if d[k] >1 else d[k] for k in d}
print(result)
ABeen | 园豆:251 (菜鸟二级) | 2021-04-13 09:58
0
a = {'A': 3, 'B': 2, 'C': 5, 'D': 1, 'E': 4, 'F': 1}
r = {k:v-1 if v > 1 else 1 for k,v in a.items()}
print(r)
{'A': 2, 'B': 1, 'C': 4, 'D': 1, 'E': 3, 'F': 1}
Jruing | 园豆:282 (菜鸟二级) | 2021-04-14 17:34
0

把Jruing大佬的代码那个列表推导式转换成常用的格式试试就知道了,挺简单,我是来加声望的

吾言! | 园豆:208 (菜鸟二级) | 2021-04-20 18:53
0

dict={'A':1, 'B':1, 'C':2, 'D':1, 'E':1, 'F':1}
for key,value in dict.items():
print(key,value)
if value>1:
dict[key]=value-1
else :
dict[key]=value

print(dict)

雨大泽 | 园豆:202 (菜鸟二级) | 2021-12-13 16:49
0

通过遍历字典来循环判断值是否大于1,若大于1,就将值-1,代码:

dict = eval(input("请输入一个字典"))
for k, v in dict.items():    # 遍历一个字典,k为键,v为值
    if v > 1:    # 如果值大于1,那么将这个键对应的值-1
        dict[k] = v - 1
print(dict)    # 输出
你豪哥哥 | 园豆:59 (初学一级) | 2022-02-07 18:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册