【发布时间】:2014-12-30 18:43:03
【问题描述】:
我有一个字典列表,其中的值存储为字符串。我想通过将值作为整数而不是字符串来对它们进行排序。 我有的代码
XWordDict=[{"name":"ABC","pos":"1"},{"name":"GHI","pos":"10"},{"name":"DEF","pos":"2"}]
Xlistsorted=sorted(XWordDict,key=(operator.itemgetter("pos")))
这给出的顺序为
[{'name': 'ABC', 'pos': '1'}, {'name': 'GHI', 'pos': '10'}, {'name': 'DEF', 'pos': '2'}]
我希望它是这样的
[{'name': 'ABC', 'pos': '1'}, {'name': 'DEF', 'pos': '2'}, {'name': 'GHI', 'pos': '10'}]
如果我改成
Xlistsorted=sorted(XWordDict,key=int(operator.itemgetter("pos)))
报错
TypeError: int() argument must be a string or a number, not 'operator.itemgetter'
【问题讨论】:
-
如果你想使用 OrderedDict 进行排序,你也不能有重复的键
-
您的示例字典不是有效的 Python 代码,尝试将人们可以轻松复制粘贴到控制台的内容放在一起(通过复制粘贴到 your 控制台进行测试)。
标签: python sorting dictionary