如何将其转化为Python列表理解?

时间:2016-01-20 20:43:21

标签: python python-2.7 list-comprehension

我想提高效率,但我无法弄清楚如何将其转化为python列表理解。

coupons = []
for source in sources:
    for coupon in source:
        if coupon.code_used not in coupons:
            coupons.append(coupon.code_used)

4 个答案:

答案 0 :(得分:5)

您无法访问当前创建的列表,但如果订单不重要,您可以使用set

coupons = set(coupon.code_used for source in sources for coupon in source)

答案 1 :(得分:2)

used_codes = set(coupon.code_used for source in sources for coupon in source)

答案 2 :(得分:1)

我将假设结果列表的顺序不重要,因为我们可以使用一个集来消除重复。

coupons = list(set(coupon.code_used for source in sources for coupon in source))

这使用生成器表达式,for子句以与嵌套循环中相同的顺序出现,以提取所有代码。 set仅保留唯一代码,list会从集合中创建一个列表(任意排序)。

答案 3 :(得分:0)

coupons = {x for x in (y.code_used for y in coupon for coupon in sources)}

您实际上在寻找set

相关问题