【问题标题】:Explanation needed for sorted(dictionary) using lambda as key使用 lambda 作为键的 sorted(dictionary) 需要解释
【发布时间】:2017-10-13 13:13:44
【问题描述】:

我对 python 很陌生,我想问一下关于 lambda 的问题。我有字典,需要按其值进行打印排序。

def print_in_accordance_of_values(english_spanish):
    for value, key in sorted(english_spanish.items(), key = lambda value: value[1]):
        print(key, value)

def main():
    english_spanish = {"hi": "hola", "thanks": "gracias", "yes": "si", "no": "no"}
    print_in_accordance_of_values(english_spanish)

main()

这部分代码实际发生了什么:

for value, key in sorted(english_spanish.items(), key = lambda value: value[1]):

感谢您的回答!

【问题讨论】:

  • 顺便说一句,使用lambda函数更有效。相反,您应该为此使用标准operator 模块中的itemgetter。例如,key=operator.itemgetter(1)

标签: python dictionary lambda


【解决方案1】:

让我们专注于sorted(english_spanish.items(), key = lambda value: value[1]) 部分,因为这就是您的问题所在。 生成器(在这种情况下将其视为一个列表)english_spanish.items() 产生对:

('hi', 'hola')
('thanks', 'gracias')

等等。 要对它们进行排序,sorted 函数需要知道如何排序。关键字lambda 创建了一个小的匿名函数,它获取对(如value)并产生每对的第二个条目。这就是sorted 作为排序依据的关键字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    相关资源
    最近更新 更多