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

时间:2018-07-12 05:59:29

标签: python dictionary

我有一个字典,其中包含列表作为其值。假设

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())

但是无法使用同一功能中的列表元素来执行此操作。有一种简洁的方法吗?

2 个答案:

答案 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'])])