我有一本字典:
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'
有人能解释为什么我得到了一个不同的价值观,以及我怎样才能得到我需要的价值观吗?你知道吗
这是因为使用
key=itemgetter(1)
时,您是按值对排序。你知道吗要按键排序,就像您在示例中所请求的那样,请使用
itemgetter(0)
:请注意,也可以简单地对项元组进行排序(使用它们的自然排序),得到相同的排序:
看起来您需要对
d
的键进行排序,然后连接相应的值。你知道吗这类似于Óscar的答案,但我不喜欢在dict中显式地“索引”
您必须对键排序,然后将相应的值联接起来。请尝试一下:
当然,您的解决方案也能起作用(不过要长一点)。您只需使用
itemgetter(0)
作为排序键,这将是dict的键:更简单的是:我们甚至不需要显式指定排序键,默认情况下元组的排序将完全满足您的要求:
相关问题 更多 >
编程相关推荐