我正在编写一段代码,并且必须对给定的列表进行一些排序。
prices = [5, 11, 3, 50, 60, 90]
k = 2
all_posible_sales = []
i=0
for buy in prices[i:len(prices)]:
for sell in prices[i:len(prices)]:
a = tuple((buy, sell))
all_posible_sales.append(a)
i += 1
for data in all_posible_sales:
if data[1] - data[0] < 0 or data[1] - data[0] == 0:
all_posible_sales.remove(data)
print(all_posible_sales)
该代码的作用是将所有可能的销售额串联起来(两个嵌套for
循环),并删除差异为负值的变量(最后一个for
循环)。
当我检查输出时,我发现一个非常不愉快的事情:元组(11, 3)
在其中,按照我的逻辑一定不能在其中
data[1] - data[0] < 0 | 3 - 11 < 0 (TRUE)
这个值有什么问题,我做错了什么吗?
除了将元素添加到列表中然后再删除之外,您可以执行以下操作,仅将有效元素添加到列表中:
prices = [5, 11, 3, 50, 60, 90]
k = 2
all_posible_sales = []
i=0
for buy in prices[i:len(prices)]:
for sell in prices[i:len(prices)]:
if sell - buy > 0:
a = tuple((buy, sell))
all_posible_sales.append(a)
也看过这一个,看看如何从列表中删除成功的项目将来的应用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句