在python中排序字符串值

鸡肉新鲜

我有一本字典:

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'

有人可以解释我为什么获得不同的价值以及如何获得所需的价值吗?

奥斯卡·洛佩兹(Oscar Lopez)

您必须对进行排序,然后加入相应的请尝试一下:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章