【发布时间】:2019-11-23 14:33:48
【问题描述】:
我有一本结构如下的字典: {1: ["string1", 10, "string2", 5.0], 2: ["string3", 200, "string4", 7.5]}
我的目标是创建一个函数,它遍历该字典并根据它们是 int 还是 float 覆盖数值。
我想出但很遗憾不起作用的功能是:
def changer(value):
if value is int:
value += 1
elif value is float:
value *= 2
def change_dict(dict):
dict = {key: changer(value) for (key, value) in dict.items()}
return dict
非常感谢任何帮助!
【问题讨论】:
-
“不幸的是不起作用”不是问题陈述
-
value 是值列表,因此您需要遍历列表而不是直接检查 int 或 float。
-
您还需要使用
type(value) is int进行严格检查,或者很可能使用if isinstance(value, int)进行类型检查 -value is int永远不会是真的,除非您在某处确实有value = int跨度>
标签: python dictionary-comprehension