反转字典中的键值(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


慕后森
浏览 241回答 3
3回答

蝴蝶不菲

已编辑首先,如果你在 python < 3.6 上,dict不保持项目的顺序。您可能想要collections.OrderedDict用于您的目的。d = {"k1":1, "k2":2, "k3":3}d.keys()# dict_keys(['k2', 'k1', 'k3'])然而,d = OrderedDict()d['k1'] = 1d['k2'] = 2d['k3'] = 3d.keys()# odict_keys(['k1', 'k2', 'k3'])使用我们的 new d,您可以添加键和值并将其反转:res = ''for k, v in d.items():&nbsp; &nbsp; res += str(k) + str(v)res[::-1]# '33k22k11k'或反向迭代:res = ''for k, v in reversed(d.items()):&nbsp; &nbsp; res +=&nbsp; str(v)[::-1] + str(k)[::-1]res# '33k22k11k'

慕哥9229398

为什么不简单地做:print(''.join([a+str(b)&nbsp;for&nbsp;a,b&nbsp;in&nbsp;dict.items()])[::-1])输出:"33k22k11k"但如果值与键不同,请执行以下操作:print(''.join([str(b)[::-1]+a&nbsp;for&nbsp;a,b&nbsp;in&nbsp;dict.items()[::-1]]))

富国沪深

也许你可以做这样的事情:dict = {"k1":1, "k2":2, "k3":3}print("".join(list(reversed([str(v)+"".join(reversed(k)) for k, v in dict.items()]))))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;输出:33k22k11k
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python