python 字典
d={'f': '70', 'i': 105, 's': 115, 'h': 104, 'c': '67'}b={v:k for k,v in d,items()}
SyntaxError: invalid syntax
b={v:k for k,v in d.items()}
b
{'70': 'f', 105: 'i', 115: 's', 104: 'h', '67': 'c'}
c={v:k for k,v in d.items() if v>100}
Traceback (most recent call last):
File "<pyshell#65>", line 1, in <module>
c={v:k for k,v in d.items() if v>100}
File "<pyshell#65>", line 1, in <dictcomp>
c={v:k for k,v in d.items() if v>100}
TypeError: '>' not supported between instances of 'str' and 'int'
请教大神,为啥最后会报错呀,大于号不能在字符串和整数之间,都是按照小甲鱼的视频里面的代码敲得呀,怎么他行,我这就不行 您好!这个错误是因为字典 d 中的值(value)有些是整数,有些是字符串,这导致在字典推导式的条件判断时,大于号 '>' 无法在字符串和整数之间进行比较。这就是为什么您收到了这个错误信息。
为了解决这个问题,您可以先将字符串类型的值转换为整数,然后再进行比较。这是一个修改后的代码示例:
d = {'f': '70', 'i': 105, 's': 115, 'h': 104, 'c': '67'}
c = {v: k for k, v in d.items() if int(v) > 100}
print(c)
这样,当比较时,所有值都会被转换为整数,避免了类型不匹配的问题。
本帖最后由 Threebody1 于 2023-4-18 21:32 编辑
你字典的键有的是字符串,可以都转换为浮点数(小数):
c={v:k for k,v in d.items() if float(v)>100}
这个例子中也可以用int(整数),但float更保险。如果您希望智能地检测,可以使用 eval。参考https://blog.csdn.net/weixin_50853979/article/details/124997408 Threebody1 发表于 2023-4-18 21:31
你字典的键有的是字符串,可以都转换为浮点数(小数):
无语 sfqxx 发表于 2023-4-18 21:32
无语
无语啥{:10_257:}
页:
[1]