有没有一种方法可以使序列号字符串不使用for循环?

时间:2020-03-15 23:47:14

标签: python python-3.x for-loop

我想用这样的数字制作一个字符串:123456789
我可以使用for循环轻松编写此代码。

x = ""
for i in range(1, 10):
    x += str(i)

但是,我希望编写此代码时没有明确的for循环。
有什么创造性的方法可以做到这一点?

3 个答案:

答案 0 :(得分:3)

您可以如下创建范围:

rangeToConvert = range(1, 10)

然后加入列表以创建字符串。唯一的问题是rangeToConvert中的值是整数,因此您需要将它们转换为字符串才能使用join函数。

x = ''.join(map(str, rangeToConvert))

在这种情况下,X为:

'123456789'

答案 1 :(得分:3)

仅出于此目的,如果您确实需要,可以使用递归函数:

def stringer(n):
    if n <= 1:
        return '1'

    return stringer(n-1) + str(n)

该函数的作用是通过递归调用自身来返回字符串123...n,每次减小n直到到达1,然后在返回的路径上构建该字符串。

如果被称为print(stringer(9)),则会得到:

123456789

那里没有循环,只是一个不错的调用堆栈

答案 2 :(得分:1)

如果您希望使用python的var storageArray = []; function printHighscores() { var userInitials = JSON.parse(localStorage.getItem("userInitials")); var highScore = JSON.parse(localStorage.getItem('userScore')); storageArray.push(userInitials, highScore); console.log(storageArray) 模块,可以执行以下操作:

itertools

上述代码段运行时,将打印:

from itertools import takewhile, count
x = ''
x = ''.join(map(str, takewhile(lambda x: x < 10, count(1))))
print(x)