根据list
键的值,我想要一个简单的dict
number
个0-99
个对象。我可以在这里找到一个正常工作的解决方案,直到我有base_list = [{'number':"123", 'key2':"sample value"},{'number':"3", 'key2':"sample value"},{'number':"55", 'key2':"sample value"},{'number':"43", 'key2':"sample value"},]
之间的值,但由于有3个char长字符串,它不再起作用。
它看起来是我的基本列表:
base_list = [{'number':"3", 'key2':"sample value"},{'number':"43", 'key2':"sample value"},{'number':"55", 'key2':"sample value"},{'number':"123", 'key2':"sample value"},]
这就是我想要达成的目标:
base_list = [{'number':"123", 'key2':"sample value"},{'number':"3", 'key2':"sample value"},{'number':"43", 'key2':"sample value"},{'number':"55", 'key2':"sample value"},]
#123,3,43,55 instead of 3,43,55,123
这就是我得到的:
sortedList = sorted(base_list, key=itemgetter('number'))
我认为问题是我用于排序列表的值是字符串,但不幸的是我不能使用整数。
是否可以在没有int类型值的情况下解决问题?或者这不是问题?
这就是我现在正在做的事情:
{{1}}
答案 0 :(得分:4)
代码 -
base_list = [
{'number': "123", 'key2': "sample value"},
{'number': "3", 'key2': "sample value"},
{'number': "55", 'key2': "sample value"},
{'number': "43", 'key2': "sample value"}
]
base_list.sort(key=lambda d: int(d['number']))
print(base_list)
输出 -
[{'key2': 'sample value', 'number': '3'}, {'key2': 'sample value', 'number': '43'}, {'key2': 'sample value', 'number': '55'}, {'key2': 'sample value', 'number': '123'}]
答案 1 :(得分:2)
base_list = [{'number':"123", 'key2':"sample value"},{'number':"3", 'key2':"sample value"},{'number':"55", 'key2':"sample value"},{'number':"43", 'key2':"sample value"},]
result = sorted(base_list, key=lambda x: int(x['number']))
print(result)
# Output
[{'key2': 'sample value', 'number': '3'}, {'key2': 'sample value', 'number': '43'}, {'key2': 'sample value', 'number': '55'}, {'key2': 'sample value', 'number': '123'}]