如何在python列表中显示变量顺序?

如何在python列表中显示变量顺序?,python,Python,在使用sort()之后,如何在python中显示变量的顺序。例如: A=3 B=1 C=2 D=[A,B,C] D.sort()将是[1,2,3],但我想看到[B,C,A]以某种方式在自变量浮动的情况下这样做是非常困难的。为什么不改用字典呢 myDict = {"A":3, "B":1, "C":2} D = ["A", "B", "C"] D.sort(key=lambda l:myDict[l]) 在这里,我们在字典里有每个字母及其对应的数字。我们有一个无序的字母列表,我们称之为sort

在使用
sort()
之后,如何在python中显示变量的顺序。例如:

A=3
B=1
C=2
D=[A,B,C]

D.sort()
将是
[1,2,3]
,但我想看到
[B,C,A]
以某种方式在自变量浮动的情况下这样做是非常困难的。为什么不改用字典呢

myDict = {"A":3, "B":1, "C":2}
D = ["A", "B", "C"]
D.sort(key=lambda l:myDict[l])
在这里,我们在字典里有每个字母及其对应的数字。我们有一个无序的字母列表,我们称之为
sort()
on。但是,我们没有使用默认的比较,而是以内联lambda函数的形式提供了我们自己的排序函数,该函数从匹配每个字母的字典中获取数字

如果您不熟悉lambda语法,则与此相同,但更简洁:

def customSort(l):
    return myDict[l]

D.sort(key=customSort)

使用
collections.OrderedDict
,可以提供按值排序的键值对列表

from collections import OrderedDict
from operator import itemgetter

d = {'A': 3, 'B': 1, 'C': 2}

res = OrderedDict(sorted(d.items(), key=itemgetter(1)))

# get keys ordered by value
print(res.keys())
odict_keys(['B', 'C', 'A'])

# get ordered values
print(res.values())
odict_values([1, 2, 3])

. 如果你想这样做,你应该使用字典。@emsimpson92不能对字典排序。您可以对字典项进行排序however@user3483203实际上,您可以,
对于键,排序中的值(d.items(),key=which):
工作正常。或者
od=OrderedDict(sorted(d.items(),key=whatever)
。就此而言,在Python 3.7+中,字典保证保留插入顺序,因此您只需执行
dd=dict(sorted(d.items(),key=whatever)
。OP并没有尝试对字典进行排序,而是尝试对字母列表进行排序。