[英]Concatenating string to keys and values in a dict of list
我有一个字典,其中包含列表作为它的值。 比方说
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())
但是无法使用同一功能中的列表元素来完成此操作。 有一种简洁的方法吗?
对dict值的列表理解可以做到:
print({k + 'a': [i + 'b' for i in v] for k, v in mydict.items()})
输出:
{'1a': ['4b', '3b', '8b'], '2a': ['3b', '7b', '5b']}
您可以通过嵌套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'])])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.