【问题标题】:Sort list of strings alphabetically按字母顺序排序字符串列表
【发布时间】:2016-06-16 11:18:15
【问题描述】:

所以我有一个问题,我该如何对这个列表进行排序:

['Pera','mela','arancia','UVA']

变成这样:

['arancia','mela','Pera','UVA']

在练习中,它说使用带有 cmp 参数的 sorted() 函数。

【问题讨论】:

  • cmp 已弃用,不应使用。
  • 为什么需要任何参数?如果你把它交给 sorted 函数,那不就行了吗?
  • 运行 sorted(myList) 将为您做到这一点。你没有 cmp 参数
  • 不会。它会先对大写字母单词进行排序,然后再对小写字母单词进行排序。
  • 不,它必须按字母顺序排序。小写或大写首先无关紧要。例如:list['Car','amazing','zipcode','Orange'] 排序为:list['amazing','Car','Orange','zipcode']

标签: python list sorted cmp alphabetical-sort


【解决方案1】:

您需要根据字符串的小写表示对元素进行排序:

sorted(['Pera','mela','arancia','UVA'], key=str.lower)

这将输出:

['arancia', 'mela', 'Pera', 'UVA']

【讨论】:

  • 为什么只有第一个字符?
  • 其实是个错误。小写表示就足够了@IgnacioVazquez-Abrams
【解决方案2】:

您可以使用key 参数轻松做到这一点:

my_list = ['Pera','mela','arancia','UVA']
my_list.sort(key=str.lower)

哪个会先得到你的小写字符。

这将就地更改对象,my_list 将被排序。

如果您想要一个新列表,您也可以使用具有相同 key 参数的 sorted 函数。例如:

my_list = ['Pera','mela','arancia','UVA']
my_sorted_list = sorted(my_list,key=str.lower)

输出将是:

>>> my_list
['Pera','mela','arancia','UVA']
>>> my_sorted_list
['arancia', 'mela', 'Pera', 'UVA']

【讨论】:

  • 好答案。还可以注意,sorted 可以根据需要使用相同的密钥。
  • 你能提供这个答案的输出吗?
  • list 方法就地运行。
  • 我不需要先小写。只是按字母顺序排序而不考虑小写或大写... ['Car','amazing','zipcode','Orange'] 变成 ['amazing','Car','Orange','zipcode']
  • ['Car','amazing','zipcode','Orange'] 变成 ['amazing','Car','Orange','zipcode'] 对不起我的英语。它引起了混乱。我需要这个。希望它更容易理解
【解决方案3】:

sorted() 与密钥一起使用。

>>> mc = ['Pera','mela','arancia','UVA']
>>> sorted(mc, key=str.lower)
['arancia', 'mela', 'Pera', 'UVA']

【讨论】:

    【解决方案4】:

    这将对您有所帮助:

    >>> words = ['Pera','mela','arancia','UVA']
    >>> sorted(words)
    ['Pera', 'UVA', 'arancia', 'mela']
    >>> sorted(words, key=str.swapcase)
    ['arancia', 'mela', 'Pera', 'UVA']
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2017-02-23
      相关资源
      最近更新 更多