我必须删除输出中的空格和换行符,但需要空格是字典中的值。
代码:
dict = {'a': '1', 'b': '2', 'c': '3', 'd': ' '}
strg = 'abcd'
for i in strg:
if i in dict:
print (dict.get(i,)),
我得到以下输出:
1 2 3 space
我想要的是:
123space
答案 0 :(得分:4)
除了建议join
而不是使用循环的其他答案,您可以使用str.translate
来获取所需的输出:
>>> 'abcd'.translate(str.maketrans({'a': '1', 'b': '2', 'c': '3', 'd': ' '}))
'123 '
如果您在python 2中,则可以执行以下操作:
>>> 'abcd'.translate(string.maketrans('abcd','123 '))
'123 '
或者您可以从dict:
中提取用于创建表格的输入和输出>>> d={'a': '1', 'b': '2', 'c': '3', 'd': ' '}
>>> inp=''.join(d.keys())
>>> out=''.join(d.values())
>>> 'abcd'.translate(string.maketrans(inp,out))
'123 '
答案 1 :(得分:3)
只需将dict.get
与str.join
的空字符串的默认值一起使用:
d = {'a': '1', 'b': '2', 'c': '3', 'd': ' '}
strg = 'abcd'
print("".join(d.get(i,"") for i in strg))
如果您使用repr,您可以看到空格:
print(repr("".join(d.get(i,"") for i in strg)))
'123 '
另外,请避免将dict用作变量名称,或dict(foo="bar")
之类的内容不会按照您的想法执行。