【发布时间】:2020-10-23 15:38:22
【问题描述】:
我现在正在学习列表推导,并且想用优雅的列表推导替换冗长的 if 语句。下面的 if 语句是我想要转换为它下面的理解列表的内容。理解列表还没有做我想做的事情,但至少你可以看到我想用它去哪里。
希望列表推导式只返回一个值,就像 if 语句一样。
提前谢谢你
weight_kg = 8
if weight_kg <= 0.25:
price_weight = 2.18
elif weight_kg <= 0.5:
price_weight = 2.32
elif weight_kg <= 1:
price_weight = 2.49
elif weight_kg <= 1.5:
price_weight = 2.65
elif weight_kg <= 2:
price_weight = 2.90
elif weight_kg <= 3:
price_weight = 4.14
elif weight_kg <= 4:
price_weight = 4.53
elif weight_kg <= 5:
price_weight = 4.62
elif weight_kg <= 6:
price_weight = 5.28
elif weight_kg <= 7:
price_weight = 5.28
elif weight_kg <= 8:
price_weight = 5.42
elif weight_kg <= 9:
price_weight = 5.42
elif weight_kg <= 10:
price_weight = 5.42
elif weight_kg <= 11:
price_weight = 5.43
else:
price_weight = 5.63
print(price_weight)
shipping_price = [{"weight": 0.25, "price" : 2.18}, {"weight": 0.5 "price" : 2.32}, {"weight": 1 "price" : 2.49}]
toy_weight = 0.6
price = [ship_price["weight"] for ship_price in shipping_price if ship_price["weight"] <= toy_weight]
print(price)
【问题讨论】:
-
有计算
price_weight的公式吗? -
也许在这里找到一些想法:stackoverflow.com/questions/61030617/…
-
在为玩具定义价格重量后,该值用于计算运费/价格等级。那是一个后期阶段,现在我正试图弄清楚如何更优雅地执行 if 语句/选择正确的价格层。
-
@Jeffrey 您确定与使用
bisect相关联的第一个答案@schwobaseggl 没有回答您的问题吗?看起来很吸引我
标签: python list if-statement list-comprehension