2012-08-27 41 views
-3

我有一个字典,其中包含键和值的字符串。我需要按字符串排序,所以当我去dict.values()时,我得到了排序列表。复杂python字典按值排序

的字符串值是这样的:45_12_something_23

我需要数字作为数字和字符串作为字符串进行排序。给定的行保证是字符串或数字(不是混合)。

在python中做到这一点最好的方法是什么?性能不是问题。

+4

词典没有订单... – Hamish

+0

如果您想要一个排序的键列表:编写您自己的排序方法,将键分成几部分,将其归一化并将其作为可排序键提供。查看排序的()文档 –

回答

1

将您的字典转换为(键,值)对列表。按照你的喜好排序它们。 (或者是你的问题 - 如何做?)然后插入排序(键,值)对collections.OrderedDict,这将记住插入顺序和迭代时使用相同的顺序。

请注意,您不能修改dict你已经有了,这将使新dict你想要的属性。

+0

是的,那是我一直在采取的方法 - 所以我现在有一个2维列表,我的字符串分解成另一个实际值列表。如何使用sorted()来正确分类这个新的2D列表? –

+0

http://wiki.python.org/moin/HowTo/Sorting/ –

+0

酷,所以我认为排序(列表,键= itemgetter(i))会给我什么我后。干杯基斯! –