我有一本字典:
data = {
'Description': 'test',
'Amount': '100000',
'TerminalKey': '1508852342226',
'OrderId': 'TokenExample',
'Password': '123456'
}
而且我需要获得一个排序值的字符串:
'100000testTokenExample1234561508852342226'
我的代码:
data = "".join([v for k, v in sorted(data.items(), key=itemgetter(1))])
输出此:
'1000001234561508852342226TokenExampletest'
有人可以解释我为什么获得不同的价值以及如何获得所需的价值吗?
您必须对键进行排序,然后加入相应的值。请尝试一下:
data = {
'Description': 'test',
'Amount': '100000',
'TerminalKey': '508852342226',
'OrderId': 'TokenExample',
'Password': '123456',
}
''.join(data[k] for k in sorted(data))
=> '100000testTokenExample123456508852342226'
当然,您的解决方案也可以工作(但是要更长一些)。您只需要itemgetter(0)
用作排序键,这将是字典的键:
''.join(v for k, v in sorted(data.items(), key=itemgetter(0)))
=> '100000testTokenExample123456508852342226'
更简单:我们甚至不需要显式指定排序键,默认情况下,元组的排序将完全满足您的要求:
''.join(v for k, v in sorted(data.items()))
=> '100000testTokenExample123456508852342226'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句