Python 排序困难(元组列表)
我正在尝试做一个类似商店的程序,5个项目,它会问你产品的名称和价格,我想通过降价来组织它Python 排序困难(元组列表),python,python-3.x,sorting,Python,Python 3.x,Sorting,我正在尝试做一个类似商店的程序,5个项目,它会问你产品的名称和价格,我想通过降价来组织它 #initialise variables product1 = [] product2 = [] product3 = [] product4 = [] product5 = [] products = [] totalCost = 0.0 #input products and prices funtions def getInput1(): product1.append(input("Wh
#initialise variables
product1 = []
product2 = []
product3 = []
product4 = []
product5 = []
products = []
totalCost = 0.0
#input products and prices funtions
def getInput1():
product1.append(input("What is the product?"))
product1.append(input("What is the price?"))
def getInput2():
product2.append(input("What is the product?"))
product2.append(input("What is the price?"))
def getInput3():
product3.append(input("What is the product?"))
product3.append(input("What is the price?"))
def getInput4():
product4.append(input("What is the product?"))
product4.append(input("What is the price?"))
def getInput5():
product5.append(input("What is the product?"))
product5.append(input("What is the price?"))
#ask user products and prices
getInput1()
getInput2()
getInput3()
getInput4()
getInput5()
products.append([product1, product2, product3, product4, product5])
products.sort(key=lambda tup: tup[1], reverse = True)
print("List is in format Product Name | Price")
print(products)
它只是正常显示价格,不排序
(p.s)我知道它可能会更整洁,但我一直在思考如何问题是
产品是一个列表,您在其中插入了另一个列表[product1,product2,product3,product4,product5]
。然后对外部列表(一个元素的内部列表)进行排序,当然仍然保持不变
你可以用products=[product1,product2,product3,product4,product5]
代替products.append(…)
,一切都应该按照你的意愿进行
对于清理,为什么要使用所有这些单独的函数?只需编写一个get_product
函数
def get_product():
productname = input("What is the product? ")
productprice = input("What is the price? ")
return (productname, productprice)
然后收集其中5个:
products = []
for _ in range(5): # this is an idiomatic way to run the code in the for loop 5 times
product = get_product()
products.append(product)
和排序
products.sort(key=lambda t: t[1], reverse=True)
这确实有助于澄清一些问题,但我必须按成本从高到低对它们进行排序,我不太确定如何将它们联系起来并进行排序properly@KieranLaing你做的部分是正确的,你只是没有把你认为你是什么分类。您没有对产品列表进行排序,而是对包含一个元素的列表进行排序--产品列表。对外部列表进行排序总是会得到相同的结果(排序不是递归的或类似的):您需要对内部列表进行排序,并完全丢弃外部列表。