【问题标题】:Python - Sorting Lists - FunctionsPython - 排序列表 - 函数
【发布时间】:2020-10-25 00:43:53
【问题描述】:

以下代码将 ex_lst 列表中的字符串按第二个字母排序,并将它们放入一个新列表中(sorted_by_second_let)

ex_lst = ['London', 'Manchester', 'Newcastle', 'Southampton', 'Bristol', 'Glasgow']
sorted_by_second_let=sorted(ex_lst,key=lambda word:word[1])
print(sorted_by_second_let)

我们如何使用函数而不是 lambda 来做同样的事情?

谢谢!

【问题讨论】:

  • 定义一个返回第二个字母的自定义函数。

标签: python-3.x list sorting lambda


【解决方案1】:

您可以定义一个返回第二个字母的自定义函数,虽然更简单的函数最好是lambda

def second(word):
    return word[1]
sorted_by_second_let = sorted(ex_lst, key=second)

【讨论】:

    【解决方案2】:
    def sort_by_second_letter(lst):
        new_lst = {}
        for word in lst:
            new_lst.update({word[1]: word})
         return sorted(new_lst)
    

    【讨论】:

    • 这不是 OP 想要的。这将返回一个排序的字母列表。
    • 我不确定。你能执行OP的代码吗?他希望使用函数而不是 lambda 来获得相同的输出。
    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    相关资源
    最近更新 更多