字典

时间:2015-05-20 07:35:44

标签: 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', 'ae1'],
 ...}

并将符号“#”放在列表的末尾。

我试过了:

for word in words:
    word[::-1]
    word = word[1:] + word[1]
    print word

键 和

for word in words.values():
    word = word[::-1]
    symbol = word.pop(0)
    print word.append(symbol)

但已获得None

3 个答案:

答案 0 :(得分:1)

我的解决方案:将字典的项目迭代到反向键和值(列表)

fdict = {'absorbed': ['ah0', 'b', 'z', 'ao1', 'r', 'b', 'd', '#'],
'access': ['ae1', 'k', 's', 'eh1', 's', '#']}

dict_= {v[::-1]: k[::-1] for v, k in fdict.items()}
print dict_

>> {'debrosba': ['#', 'd', 'b', 'r', 'ao1', 'z', 'b', 'ah0'],'ssecca': ['#', 's', 'eh1', 's', 'k', 'ae1']}

答案 1 :(得分:0)

ТатьянаПаскевич,试试这个:

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']}

干杯!!

答案 2 :(得分:0)

对Wajdi Farhani的信任,他首先来到这里。

至于第二部分:

rd = {k[::-1]: (v[-2::-1] + v[-1:]) for k, v in d.iteritems()}

请注意,这仅在'#'最初始终是源列表中的第一项时才有效。