我想写一个代码,用字典高效地替换列表中的某些字符。
如果我有
key = {'a':'z','b':'y','c':'x'}
List = ['a','b','c']
如何获取输出
zyx
编辑以澄清。我想要的输出确实是
randomvariableorsomething = ['z','y','x'] 我很抱歉。
如果我在字典中没有键,[List中x的[key [x]]是否可以工作?
答案 0 :(得分:2)
使用get
和join
:
>>> ''.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]