我想提高效率,但我无法弄清楚如何将其转化为python列表理解。
coupons = []
for source in sources:
for coupon in source:
if coupon.code_used not in coupons:
coupons.append(coupon.code_used)
答案 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