[英]How do I remove the spaces when Python prints in for loop?
我是Python的新手。 尝试制作一个简单的函数,通过dict值将字符串输入转换为盲文(“ 1”表示凹凸,0表示无凹凸)。
我敢肯定有更快/更好的方法来做到这一点,但是我所拥有的几乎可以正常工作(另一种说法完全无效)。
alphabet = {
'a': '100000','b': '110000','c': '100100','d': '100110'
#etc
}
def answer(plaintext):
for i in str(plaintext):
for key, value in alphabet.iteritems():
if i in key:
print value,
answer('Kiwi')
打印:
000001101000 010100 010111 010100
我的问题是如何删除空格? 我需要将其打印为:
000001101000010100010111010100
它打印为元组,所以我不能使用.strip()。
对于我认为是pythonic的方式:
def answer(plaintext):
alphabet = { ... }
return "".join([alphabet[c] for c in plaintext])
(这假定所有plaintext
alphabet
均使用alphabet
)
brail = []
for i in str(...):
if alphabet.get(i):
brail.append(alphabet[i])
print ''.join(brail)
在函数的第一行中,创建一个容器l=[]
将循环内的最后一条语句更改为l.append(value)
。在循环外但仍在函数内,请return ''.join(l)
。 现在应该工作。
您可以在generator
使用join()
,如下所示:
alphabet = {'a': '100000','b': '110000','c': '100100','d': '100110'}
def answer(a = ''):
for i in a:
for key, value in alphabet.iteritems():
if i in key:
yield value
print ''.join(answer('abdaac'))
输出:
>>> 100000110000100110100000100000100100
在Python中操作打印的一种方法是使用end参数。 默认情况下,它是换行符。
print("foo")
print("bar")
将打印如下:
foo
bar
为了使这两个语句在同一行上打印,我们可以这样做:
print("foo",end='')
print("bar",end='')
它将像这样打印:
foobar
希望这是解决此类问题的有用方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.