Python:获取长度为N的空格字符串的最简单方法

10

在Python中,生成指定长度N的空格字符串最简单的方法是什么?

(除了类似下面这样的多行方式,对于大N来说可能效率不高:

def spaces(n):
  s = ''
  for i in range(n):
    s += ' '
  return s

)


2
我将它从-1加回来,因为我认为如果你不知道“*”运算符适用于字符串,这并不是一个不合理的问题。 - Codie CodeMonkey
@DeepYellow:谢谢。我想也许没有捷径,或者任何捷径都会很难懂/丑陋。现在我很高兴我问了! - Jason S
6个回答

33

尝试这个,简单易行,只有一行代码:

    ' ' * n

酷!这个在哪里有文档记录?我在 Python 文档中找不到它(典型的无法在 Google 搜索中使用标点符号的问题)。 - Jason S
我正在标记这个问题,因为你显然是填充内容以绕过字符限制。顺便说一句,我是开玩笑的。也许。 - Swiss
2
http://docs.python.org/py3k/library/stdtypes.html#string-methods,http://docs.python.org/py3k/library/stdtypes.html#typesseq。幸运的是,大多数运算符,如乘法,也有一个词语名称。 - Dave Newton
你试过谷歌搜索“Python字符串乘法”吗? - Karl Knechtel

3

这很简单:

s = ' ' * N

3
您可以将其作为一个函数来完成:
def spaces(n):
    return ' ' * n

或者只需使用表达式:

' ' * n

1

所有这些追求分数的人都不好玩,他们的简单答案很烂。

真正的答案如下:

def give_me_spaces(n):
    return (lambda : ''.join(' ' for _ in xrange(n)))()

而且它明显更优秀,因为它使用了函数式编程。


我认为这也可以编译成有效的 Haskell。 - Swiss
点赞因为很有趣 :) - Amit Bens

1

我不得不在我的Python辅助函数中挖掘这个,但是它很好用。

spaces = (lambda n: 
          (lambda z: z(lambda f: lambda m:'' if m <= 0 else ' ' + f(m - 1))(n))
          (lambda f:(lambda x:f(lambda*a:x(x)(*a)))(lambda x:f(lambda*a:x(x)(*a)))))

为了搞笑效果点赞 :) - Amit Bens

1

就我个人而言:

spaces = lambda x: ' ' * x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接