Python 在字典中反转键和值
我有一本这样的字典:Python 在字典中反转键和值,python,dictionary,Python,Dictionary,我有一本这样的字典: dict = {'absorbed': ['ah0', 'b', 'z', 'ao1', 'r', 'b', 'd', '#'], 'access': ['ae1', 'k', 's', 'eh1', 's', '#'], ...} 我想反转每个键和值以获得下一个字典: dict = {'debrosba': ['#', 'd', 'b', 'r', 'ao1', 'z', 'b', 'ah0'], 'ssecca': ['#', 's', 'eh1', 's', 'k
dict = {'absorbed': ['ah0', 'b', 'z', 'ao1', 'r', 'b', 'd', '#'],
'access': ['ae1', 'k', 's', 'eh1', 's', '#'],
...}
我想反转每个键和值以获得下一个字典:
dict = {'debrosba': ['#', 'd', 'b', 'r', 'ao1', 'z', 'b', 'ah0'],
'ssecca': ['#', 's', 'eh1', 's', 'k', 'ae1'],
...}
然后将符号“#”放在列表的末尾
我试过:
for word in words:
word[::-1]
word = word[1:] + word[1]
print word
钥匙
及
但我的解决方案是:迭代dict中的项以反转键和值(列表)
fdict={'absolved':['ah0','b','z','ao1','r','b','d','#'],
“访问”:['ae1'、'k'、's'、'eh1'、's'、'#']}
dict={v[::-1]:k[:-1]表示v,k在fdict.items()中
打印口述_
>>{'debrosba':['#','d','b','r','ao1','z','b','ah0'],'ssecca':['#','s','eh1','s','k','ae1']}
试试这个:
d1 = {'absorbed': ['ah0', 'b', 'z', 'ao1', 'r', 'b', 'd', '#'],
'access': ['ae1', 'k', 's', 'eh1', 's', '#']}
d2 = {}
for a in d1:
d2[a[::-1]] = d1[a][::-1]
print d2
输出:
{'ssecca': ['#', 's', 'eh1', 's', 'k', 'ae1'], 'debrosba': ['#', 'd', 'b', 'r', 'ao1', 'z', 'b', 'ah0']}
干杯 归功于瓦伊迪·法哈尼,他首先来到这里 关于第二部分:
rd = {k[::-1]: (v[-2::-1] + v[-1:]) for k, v in d.iteritems()}
请注意,只有当
“#”
最初始终是源代码列表中的第一项时,此操作才有效。可能的重复项将获得无
,因为打印word.append(symbol)
返回无
。你必须在添加第一个版本后打印列表。你的第一个版本是正确的,为什么现在要对值进行奇怪的处理?你不再颠倒列表了。将第一个元素与中间的最后一个元素连接起来。对不起,我误解了他的意思,我认为他们不明白他们想要什么。示例输出使用简单的反转。最后一个细节:不要使用dict
作为变量名;这掩盖了内置类型。
rd = {k[::-1]: (v[-2::-1] + v[-1:]) for k, v in d.iteritems()}