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()}