我有一个字典,其中包含列表作为其值。假设
mydict = {
'1': ['4', '3', '8'],
'2': ['3', '7', '5']
}
我想做的是向每个键添加一个字符,并为列表的每个元素添加一个不同的字符。假设mydict
应该变成
mydict = {
'1a': ['4b', '3b', '8b'],
'2a': ['3b', '7b', '5b']
}
我能够通过执行以下操作来更改键:
def m(mydict):
return dict((k + 'a', m(v) if hasattr(v, 'keys') else v) for k,v in mydict.items())
但是无法使用同一功能中的列表元素来执行此操作。有一种简洁的方法吗?
答案 0 :(得分:4)
对dict值的列表理解将会做到:
print({k + 'a': [i + 'b' for i in v] for k, v in mydict.items()})
这将输出:
{'1a': ['4b', '3b', '8b'], '2a': ['3b', '7b', '5b']}
答案 1 :(得分:0)
您可以通过如下嵌套dict比较和列表比较来实现此目的
mydict = {
'1': ['4', '3', '8'],
'2': ['3', '7', '5']
}
letterdict = {
key + 'a' : [e + 'b' for e in value]
for key, value in mydict.items()
}
letterdict
> dict_items([('1a', ['4b', '3b', '8b']), ('2a', ['3b', '7b', '5b'])])