如何在python中使用字典替换列表中的字符

时间:2018-10-15 17:21:07

标签: python list dictionary replace key

我想写一个代码,用字典高效地替换列表中的某些字符。

如果我有

key = {'a':'z','b':'y','c':'x'}
List = ['a','b','c']

如何获取输出

  

zyx

编辑以澄清。我想要的输出确实是

randomvariableorsomething = ['z','y','x'] 我很抱歉。

如果我在字典中没有键,[List中x的[key [x]]是否可以工作?

3 个答案:

答案 0 :(得分:2)

使用getjoin

>>> ''.join(key.get(e,'') for e in List)
'zyx'

如果通过“替换”是指按照原始列表的元素顺序将列表更改为dict的值,则可以执行以下操作:

>>> List[:]=[key.get(e,'') for e in List]
>>> List
['z', 'y', 'x']

答案 1 :(得分:0)

key = {'a':'z','b':'y','c':'x'}
List = ['a','b','c']

print([key.get(x,"No_key") for x in List])

#### Output ####

['z', 'y', 'x']

如果您只想将它​​们打印为字符串,则:

print(*[key.get(x,"No_key") for x in List],sep="")

#### Output ####

zxy

以防万一,您需要不加入联接的解决方案。

ss = ''
def fun_str(x):
    global ss
    ss = ss + x
    return(ss)
print([fun_str(x) for x in List][-1])

#### Output ####

zxy

答案 2 :(得分:-1)

key和List都是python中可能与现有对象或方法(dict.keys()List对象)发生冲突的单词,因此为了最佳实践,我分别用k和lst替换了它们:

[k[x] for x in lst]