对字典进行排序并提取到列表中

时间:2017-09-08 16:53:39

标签: python

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

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

我得到了

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

然后我想按照他们的顺序将第二部分(快乐,帮助,评论,输入,你好)提取到一个列表中!

我试过了

test = sorted(values)
print(test)

导致:

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

3 个答案:

答案 0 :(得分:0)

你不能“排序字典”,因为字典是无序的,但是你可以得到字典中的值列表,按照各自的键排序(这是我认为你得到的“我怎么做检索字符串值?“) - 就像你已经得到一个按自己排序的键列表一样。

有两种想法,更明显:

v = [d[k] for k in sorted(d)]
print(v)

效率更高(两者中):

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

两者都会产生

列表
['happy', 'help', 'review', 'enter', 'hello']

答案 1 :(得分:0)

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']

答案 2 :(得分:-2)

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

data = [val for (key,val) in sorted(values.items())]
print(data)