我有这样的字典:
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
答案 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()}
请注意,这仅在'#'
最初始终是源列表中的第一项时才有效。