如何在 Python 中将这个经典金字塔的输出变成列表
python 221
原文标题 :How to make the output of this classic pyramids into list in Python
我希望这段代码的输出是一个列表我应该怎么做我对python很陌生,如果这看起来很傻很抱歉
s = "Hello, World!"
for i in range(len(s)+ 1):
a = print(s[:i])
print(a)
输出将是:
H
He
Hel
Hell
Hello
Hello,
Hello,
Hello, W
Hello, Wo
Hello, Wor
Hello, Worl
Hello, World
Hello, World!
我怎样才能像这样输出它:
[ "H",
"He",
"Hel",
"Hell",
"Hello",
"Hello,",
"Hello, ",
"Hello, W",
"Hello, Wo",
"Hello, Wor",
"Hello, Worl",
"Hello, World",
"Hello, World!",
]
回复
我来回复-
Schnitte 评论
您可以在代码的开头创建一个空列表(我们称之为
string_list
),然后用string_list.append(s)
将每个子字符串附加到该列表中,而不是打印子字符串。2年前 -
Tamás Pápai 评论
s = "Hello, World!" my_list = [] for i in range(len(s)): my_list.append(s[:i+1]) my_list
输出:
['H', 'He', 'Hel', 'Hell', 'Hello', 'Hello,', 'Hello, ', 'Hello, W', 'Hello, Wo', 'Hello, Wor', 'Hello, Worl', 'Hello, World', 'Hello, World!']
pythonic方式是列表理解:
s = "Hello, World!" [s[:i+1] for i in range(len(s))]
2年前 -
Sowjanya R Bhat 评论
这是你要找的:
print("[") [print('"' + s[:i] + '"') for i in range(len(s)+ 1)] print("]")
2年前 -
inquirer 评论
s = "Hello, World!" qqq = [] for i in range(len(s)+ 1): a = print(s[:i]) qqq.append(s[:i]) print(a) print(qqq)
2年前 -
Riccardo Bucco 评论
这正是
itertools.accumulate
内置函数所做的:from itertools import accumulate result = list(accumulate('Hello, World!'))
如果你喜欢一些更容易理解的东西:
s = 'Hello, World!' result = [] for i in range(len(s) + 1): result.append(s[:i])
前面的方法也可以使用列表推导式编写:
s = 'Hello, World!' result = [s[:i] for i in range(len(s) + 1)]
2年前