【发布时间】:2014-12-05 13:17:32
【问题描述】:
我有以下格式的元组列表:
input_list = [(x1, y1), (x2, y2), ... , (xn, yn)]
我想通过在每个元组中的第一个参数上应用一个函数并将其存储在不同的元组列表中来将此列表转换为不同的列表。所以:
new_list = [(func(x), y) for (x, y) in input_list]
问题是,func(x) 可能会返回一个空字符串。在这种情况下,我不希望元组 (func(x), y) 在 new_list 中。我希望我可以这样做:
new_list = [(func(x), y) for (x, y) in input_list if func(x)]
但这会导致计算量翻倍并且效率极低。我怎样才能做到这一点?
【问题讨论】:
-
[(x,y) for (x,y) in [(func(x), y) for (x, y) in list] if x]? -
@fredtantini 我在想什么 - 只需将 list-comp 转换为 gen-exp...
标签: python tuples filtering list-comprehension