Python 将字典排序并提取到列表中

Python 将字典排序并提取到列表中,python,Python,我希望能够对字典键进行排序,以便 我明白了 values = { 4 : review, 5 : enter, 2 : help, 9 : hello, 1 : happy, } 然后我想将第二部分的单词(happy、help、review、enter、hello)按顺序提取到一个列表中 我试过了 values = { 1 : happy, 2 : help,

我希望能够对字典键进行排序,以便

我明白了

    values = {
        4 : review,
        5 : enter,
        2 : help,
        9 : hello,
        1 : happy,
}
然后我想将第二部分的单词(happy、help、review、enter、hello)按顺序提取到一个列表中

我试过了

    values = {
        1 : happy,
        2 : help,
        4 : review,
        5 : enter,
        9 : hello,
}
其结果是:

[1,2,4,5,9]正确的顺序是什么,但是如何检索字符串值?

您不能对字典进行“排序”,因为字典是无序的,但是您可以在字典中获得一个按其各自键排序的值列表(我认为您是在“如何检索字符串值?”)--就像您已经得到了一个按键本身排序的键列表一样

test = sorted(values)
print(test)
我想到了两种更明显的方法:

test = sorted(values.items())
print(test)   

data = [val for (key,val) in sorted(values.items())]
print(data)
而且效率更高(两者中):

两者都会产生一个

v = [v for (k,v) in sorted(d.items())]
print(v)
输出:

values = { 4: "review",
    5 : "enter",
    2 : "help",
    9 : "hello",
    1 : "happy",}

print([values[key] for key in sorted(values.keys())])

看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。不能对字典进行排序。它们是无序的数据结构,对于这个问题的每一个可能的变体,都有无数的答案。只需搜索它。如果您只想按排序键顺序遍历字典,则可以对键使用
,对排序中的val(values.items()):
-
sorted()
生成一个列表,但您实际上不需要保留它(注意,它不会因为循环中的更改而更改)。这不是我的反对票,但是我很确定在这个列表中可以找到原因:1)回答了一个不费力的问题2)回答了一个明显重复的问题我的意思是,我会整天回答这样重复的问题——回答这样复杂的重复问题需要20秒,但找到这种类型的原始问题需要更长的时间。嗯,问题是我们每周可能会收到三次这个问题,我们真的不需要几十份副本。没有答案且分数<0的问题将被roomba自动删除。@Raw no you's right--我一直在寻找被欺骗的目标,但结果很枯燥--一个接近的目标,但不确定它是最好的。“回答如此复杂的重复问题需要20秒,但找到这种类型的原始问题需要更长的时间。“这也让网站变得更糟,而不是更好,对提问者几乎没有帮助,让其他人更难找到规范的答案。所以这比meh更糟糕。只提供代码并不能真正帮助原始海报。请加上一些评论。
['happy', 'help', 'review', 'enter', 'hello']
values = { 4: "review",
    5 : "enter",
    2 : "help",
    9 : "hello",
    1 : "happy",}

print([values[key] for key in sorted(values.keys())])
['happy', 'help', 'review', 'enter', 'hello']