繁体   English   中英

将字符串连接到列表字典中的键和值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM