排除空值以便将一个列表除以另一个列表

时间:2012-10-05 00:32:02

标签: python list null

我有两个列表:total_priceunits_b,它们都包含空值,我有一个表达式将total_price除以units_b:

    total_price = [None, None, 10, 20]
    units_b = [None, None, 1, 2]

    average_price = [(x/y) for x, y in zip(total_price, units_b)]

尝试运行average_price会给我一个错误,说我不能分为两个'NoneTypes'。有什么方法可以排除除法的空值但是坚持原始列表的完整性?

3 个答案:

答案 0 :(得分:2)

average_price = [(x/y) for x, y in zip(total_price, units_b) if x is not None and y is not None]

答案 1 :(得分:2)

total_price = [None, None, 10, 20]
units_b = [None, None, 1, 2]

average_price = [(x/y) for x, y in zip(total_price, units_b) if x is not None and y is not None]

答案 2 :(得分:0)

average_price = [(x/y) for x, y in zip(total_price, units_b) if not (x==None or y==None)]

虽然你应该read the docs