【问题标题】:Sort by a specific word and by alphabetical order按特定单词和字母顺序排序
【发布时间】:2016-01-28 15:21:05
【问题描述】:

我正在使用 python 2.7。我有一个要排序的应用程序列表。 我的问题是:我有一个特定的词,我需要在列表的顶部,然后休息。

我的清单是这样的:

  • 应用名称1
  • 应用名称2
  • Appname2Bootstrap
  • 应用名称3
  • Appname3Bootstrap

现在我使用此代码按字母顺序排序

with open(filename) as
sortedFile:
    sortedFile = sortedFile.readlines()
    sortedFile.sort()

我不知道如何使用“Boostrap”这个词使其首先排序

【问题讨论】:

  • 您的预期输出是什么?
  • 您可以编写自定义排序函数并将其作为参数传递,请参阅:wiki.python.org/moin/HowTo/Sorting#Key_Functions
  • 我的预期输出是:* Appname2Bootstrap * Appname3Bootstrap * Appname1 * Appname2 * Appname3

标签: python python-2.7 sorting


【解决方案1】:

this answer 的基础上解决另一个问题,您可以为要排序的键设置一个函数:

from __future__ import print_function

items = ['Appname1', 'Appname2', 'Appname2Bootstrap', 'Appname3', 'Appname3Bootstrap']
items_sorted = sorted(items, key=lambda x: (not x.endswith('Bootstrap'), x))

print('Got the sorted items: {}'.format(items_sorted))

这会将带有“Bootstrap”的两项放在排序列表的开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 2018-07-13
    • 1970-01-01
    相关资源
    最近更新 更多