使用多个键和每个键的多个值过滤字典
Filtering a Dictionary with mutiple keys and multiple values per key
我有一个关于如何使用循环过滤字典的问题。
这是字典的一个例子:
d = {'beta': ['ABC', '1', '5', '10', '15'],
'lambda': ['DEF', '3', '30', '22.2', '150'],
'omega': ['RST','15', '54.4', '150', '75']
}
如果每个键中的第 3 个值 < 100,我如何过滤字典以删除键?也就是说,在if函数之后,字典中应该只剩下omega了。
我试过了:
for k, v in d.iteritems():
r = float((d[key][2]))
if r < float(100):
del d[k]
但是没有用。有什么想法吗? python 编程新手。
新字典应该只保留 omega 键,因为 150 大于 100。
def cast_values(v):
try:
return float(v)
except ValueError:
return v
new_d = {k:[ cast_values(i) for i in v ] for k,v in d.items() if float(v[3]) > 100}
结果:
new_d = {'omega': ['RST', 15, 54.4, 150, 75]}
我有一个关于如何使用循环过滤字典的问题。
这是字典的一个例子:
d = {'beta': ['ABC', '1', '5', '10', '15'],
'lambda': ['DEF', '3', '30', '22.2', '150'],
'omega': ['RST','15', '54.4', '150', '75']
}
如果每个键中的第 3 个值 < 100,我如何过滤字典以删除键?也就是说,在if函数之后,字典中应该只剩下omega了。
我试过了:
for k, v in d.iteritems():
r = float((d[key][2]))
if r < float(100):
del d[k]
但是没有用。有什么想法吗? python 编程新手。
新字典应该只保留 omega 键,因为 150 大于 100。
def cast_values(v):
try:
return float(v)
except ValueError:
return v
new_d = {k:[ cast_values(i) for i in v ] for k,v in d.items() if float(v[3]) > 100}
结果:
new_d = {'omega': ['RST', 15, 54.4, 150, 75]}