首页 > 解决方案 > 反转字典中的键值(Python 中的高级反转字符串)

问题描述

所以我试图做的是输出字符串“33k22k11k”,它只是最后一个值,后跟反向的最后一个键,然后是倒数第二个值,然后是倒数第二个键,依此类推。我不确定如何为我所在的特定循环获取反向键值。从我目前拥有的代码中,我得到输出:

dict = {"k1":1, "k2":2, "k3":3}
current=""
current_k=""
for k,v in dict.items():
    for i in k:
        current_k=i+current_k
    current=str(v)+current_k+current
print(current)
print(current_k)

33k2k1k22k1k11k

3k2k1k

标签: pythonreverse

解决方案


已编辑

首先,如果你在python < 3.6,dict不保持项目的顺序。您可能希望将其collections.OrderedDict用于您的目的。

d = {"k1":1, "k2":2, "k3":3}
d.keys()
# dict_keys(['k2', 'k1', 'k3'])

然而,

d = OrderedDict()
d['k1'] = 1
d['k2'] = 2
d['k3'] = 3
d.keys()
# odict_keys(['k1', 'k2', 'k3'])

使用我们的 new d,您可以添加键和值并将其反转:

res = ''
for k, v in d.items():
    res += str(k) + str(v)
res[::-1]
# '33k22k11k'

或反向迭代:

res = ''
for k, v in reversed(d.items()):
    res +=  str(v)[::-1] + str(k)[::-1]
res
# '33k22k11k'

推荐阅读