【发布时间】:2020-01-08 02:32:07
【问题描述】:
我有一个键和列表字典。我想遍历字典,获取每个列表,遍历每个列表并应用条件,然后将该过滤后的列表附加到新字典。
该功能已经强制运行。我可以用列表和字典理解在功能上做同样的事情吗?主要的障碍是包装 dict-comp 有一个条件,需要 list-comp 的长度。
这里它在命令式地工作:
filtered_prediction_dict = {}
for prediction, confidence_intervals in prediction_dict.items():
filtered_confidence_intervals = []
for i in confidence_intervals:
if i > threshold:
filtered_confidence_intervals.append(i)
if len(filtered_confidence_intervals) >= 1:
filtered_prediction_dict[prediction] = filtered_confidence_intervals
我想知道我是否可以用推导在功能上做同样的事情,像这样:
filtered_prediction_dict = {prediction: [i for i in confidence_intervals if i > threshold] for prediction, confidence_intervals in prediction_dict.items() if len(filtered_confidence_intervals) >= 1}
当然,python的linter指出filtered_confidence_intervals还没有在条件的len(filtered_confidence_intervals)中定义。
有什么办法吗?
【问题讨论】:
-
"I was wondering if I could do the same thing functionally with comprehensions"请不要,如果您想在 1 周后了解您的代码,请不要这样做 -
只需将
filtered_confidence_intervals设为列表解析,其余部分保持原样。 -
这些答案有帮助吗?
-
是的,我希望有一种元方法可以避免计算列表理解两次,但这似乎是不可避免的。 any() 函数很有用。
标签: python list-comprehension dictionary-comprehension