当Python打印for for循环时如何删除空格?

时间:2017-03-20 22:52:32

标签: python

我是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()。

5 个答案:

答案 0 :(得分:1)

对于我考虑的pythonic方式:

def answer(plaintext):
    alphabet = { ... }
    return "".join([alphabet[c] for c in plaintext])

(这假设plaintext中的所有字母都在alphabet

答案 1 :(得分:0)

brail = []
for i in str(...):
  if alphabet.get(i):
    brail.append(alphabet[i])
print ''.join(brail)

答案 2 :(得分:0)

在函数的第一行中,创建一个容器l=[]。将循环中的最后一个语句更改为l.append(value)。在循环外部,但仍在函数内部,执行return ''.join(l) 。现在应该工作。

答案 3 :(得分:0)

您可以像join()这样使用generator

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

答案 4 :(得分:0)

在Python中操作打印的一种方法是使用end参数。默认情况下,它是换行符。

print("foo")
print("bar")

会像这样打印:

foo
bar

为了使这两个语句在同一行上打印,我们可以这样做:

print("foo",end='')
print("bar",end='')

这将打印如下:

foobar

希望这是解决此类问题的有效方法。