首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按字母顺序(带数字)在python中打印列表

按字母顺序(带数字)在python中打印列表
EN

Stack Overflow用户
提问于 2014-04-07 02:50:21
回答 2查看 1.2K关注 0票数 2

我需要打印那些多个列表,但它需要按字母顺序打印,.sort无法工作,因为涉及到数字。

代码语言:javascript
复制
"""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]))

所以它印了:

代码语言:javascript
复制
   Steak        $      10.00               7         $     10.50      
Canned Corn     $       .50                5         $      0.53      

当它要打印时:

代码语言:javascript
复制
Canned Corn     $       .50                5         $      0.53
   Steak        $      10.00               7         $     10.50      

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 02:52:58

您可以像这样使用sorted函数

代码语言:javascript
复制
for item in sorted(shortLifeItems):
    ...

它比较列表中的每一项,并按排序顺序返回项。当它比较像这样的嵌套列表时,它首先比较这两个项的第一个元素,如果它们相等,那么第二个,如果它们相等,那么第三个,然后一直持续到最后。

您可以阅读更多关于在Python,这里中如何比较各种序列的内容。

票数 1
EN

Stack Overflow用户

发布于 2014-04-07 02:58:09

您需要显式地对列表进行排序。以下是其中的诀窍:

代码语言:javascript
复制
shortLifeItems = sorted(shortLifeItems, key=lambda list: list[0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22902825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档