【发布时间】:2021-03-11 09:43:27
【问题描述】:
我有一个书店订单清单:
orders = [ [1, ("5464", 4, 9.99), ("8274",18,12.99), ("9744", 9, 44.95)],
[2, ("5464", 9, 9.99), ("9744", 9, 44.95)],
[3, ("5464", 9, 9.99), ("88112", 11, 24.99)],
[4, ("8732", 7, 11.99), ("7733", 11,18.99), ("88112", 5, 39.95)] ]
数字1,2,3,4是订单号,元组中的元素是“书号”、“数量”和“价格”。如果总价小于 100“总价 + 10”,我想将“数量”和“价格”合并为 1 个元素,即“总价”。
m1_list = []
for row in orders:
lst = [row[0]]
for column in row[1:len(row)]:
order_num, quantity, price = column
product = float(quantity) * float(price)
if product < 100:
total_price = product + 10
else:
total_price = product
tpl = (order_num, total_price)
lst.append(tpl)
m1_list.append(lst)
print(m1_list)
这是输出:
[[1, ('5464', 49.96), ('8274', 233.82), ('9744', 404.55)],
[2, ('5464', 99.91), ('9744', 404.55)],
[3, ('5464', 99.91), ('88112', 274.89)],
[4, ('8732', 93.93), ('7733', 208.89), ('88112', 199.75)]]
由于不允许使用迭代/循环,我如何仅使用列表推导来完成与上述相同的操作?
【问题讨论】:
-
您的问题得到解答了吗?
标签: python-3.x list iteration list-comprehension