我需要以下问题的帮助。
使用主题代码(“ S1”或“ S2”)打印高于75(> 75)的标记。字典(d)如下。
d = {"S1":[80, 87, 71, 95, 78, 65], "S2": [51, 78, 65, 78, 85, 78]}
我已经尝试过了。
d = {"CS":[80, 87, 71, 95, 78, 65], "STAT": [51, 78, 65, 78, 85, 78]}
{k:v for (k,v) in d.items() if v > 75}
但是它给出了类型错误。
我想我的循环不会遍历列表中的每个值。
请帮助!
答案 0 :(得分:0)
您收到错误,因为v是列表而不是整数。要打印所有高于75的打印件,可以在v
上使用滤镜{k:list(filter(lambda x: x > 75, v)) for (k,v) in d.items()}
答案 1 :(得分:0)
您应该使用list-comprehension
过滤掉v
中的所需值。
{k: [val for val in v if val > 75] for k,v in d.items()}
{'S1': [80, 87, 95, 78], 'S2': [78, 78, 85, 78]}
答案 2 :(得分:0)
这是使用itertools
d = {"S1":[80, 87, 71, 95, 78, 65], "S2": [51, 78, 65, 78, 85, 78]}
print([value for value in list(itertools.chain.from_iterable(d.values())) if value > 75])