首页 > 解决方案 > 如何将字典值转换为字符串

问题描述

如何将此字典的值转换为字符串

d = {(0, 0): 'S', (1, 1): 'T', (2, 2): 'A', (3, 3): 'C', 
      (4, 4): 'K', (5, 5): 'O', (6, 6): 'V', (5, 7): 'E',
      (4, 8): 'R', (3, 9): 'F', (2, 10): 'L', (1, 11): 'O',
      (0, 12): 'W', (1, 13): 'T', (2, 14): 'E', (3, 15): 'S',
      (4, 16): 'T'}

如何对输出进行排序?

(0, 0), (0, 12),(1, 1),(1, 11) ....

我想获取 str 方法给我的一个字符串中的所有值

dict_values(['S', 'T', 'A', 'C', 'K', 'O', 'V', 'E', 'R', 'F', 'L', 'O', 'W', 'T', 'E', 'S', 'T'])

标签: pythonpython-3.x

解决方案


在 python 3.5 及更高版本中,字典保留输入/添加键的顺序。因此,您可以忘记密钥,只需执行以下操作:

"".join(d.values())

但是 1)它在旧版本的 Python 中失败了,2)我想这些键是有目的的。

所以我猜(我真的猜)你想根据元组键的第二个值(忽略第一个值)对字典的值进行排序。

d={(0, 0): 'S', (1, 1): 'T', (2, 2): 'A', (3, 3): 'C', (4, 4): 'K', (5, 5): 'O', (6, 6): 'V', (5, 7): 'E', (4, 8): 'R', (3, 9): 'F', (2, 10): 'L', (1, 11): 'O', (0, 12): 'W', (1, 13): 'T', (2, 14): 'E', (3, 15): 'S', (4, 16): 'T'}

result = "".join(v for _,v in sorted(d.items(),key=lambda x:x[0][1]))

然后:

>>> result
'STACKOVERFLOWTEST'

推荐阅读