我需要打印那些多个列表,但需要按字母顺序打印,.sort不会工作,因为涉及到数字。
"""define a function to retrive short shelf life items in alphabetical order"""
def retrieveShortShelfLifeItems(oneItemList):
if shelfLife <= 7:
shortLifeItemsList.append(oneItemList)
return shortLifeItemsList
#initializes short shelf life list
shortLifeItemsList = []
shortLifeItems = [['Steak', ' 10.00', ' 7', '10.50'], ['Canned Corn', ' .50', ' 5', '0.53']]
#print items with short shelf life
for item in shortLifeItems:
print("{:^20s}${:^16s}{:^20s}${:^16s}"\
.format((item[0]),item[1],item[2],item[3]))
所以打印出来:
Steak $ 10.00 7 $ 10.50
Canned Corn $ .50 5 $ 0.53
当它打印时:
Canned Corn $ .50 5 $ 0.53
Steak $ 10.00 7 $ 10.50
有什么建议吗?
答案 0 :(得分:1)
您可以使用sorted
这样的功能
for item in sorted(shortLifeItems):
...
它会比较列表中的每个项目,并按排序顺序返回项目。当它比较像这样的嵌套列表时,它首先比较两个项目的第一个元素,如果它们相等,则第二个元素相等,如果它们相等,则第三个元素继续比较,直到结束。
您可以阅读有关如何在Python中比较各种序列的更多信息,here
答案 1 :(得分:0)
您需要明确排序列表。以下是诀窍:
shortLifeItems = sorted(shortLifeItems, key=lambda list: list[0])