[英]How to make the output of this classic pyramids into list in Python
我希望此代碼的 output 成為一個列表我應該怎么做我對 python 很陌生如果這看起來很傻很抱歉
s = "Hello, World!"
for i in range(len(s)+ 1):
a = print(s[:i])
print(a)
output 將是:
H
He
Hel
Hell
Hello
Hello,
Hello,
Hello, W
Hello, Wo
Hello, Wor
Hello, Worl
Hello, World
Hello, World!
我怎樣才能像 output 一樣:
[ "H",
"He",
"Hel",
"Hell",
"Hello",
"Hello,",
"Hello, ",
"Hello, W",
"Hello, Wo",
"Hello, Wor",
"Hello, Worl",
"Hello, World",
"Hello, World!",
]
您可以在代碼的開頭創建一個空列表(我們稱之為string_list
),並使用string_list.append(s)
將 append 每個 substring 添加到該列表,而不是打印 substring。
s = "Hello, World!"
my_list = []
for i in range(len(s)):
my_list.append(s[:i+1])
my_list
Output:
['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))]
這是你要找的嗎:
print("[")
[print('"' + s[:i] + '"') for i in range(len(s)+ 1)]
print("]")
s = "Hello, World!"
qqq = []
for i in range(len(s)+ 1):
a = print(s[:i])
qqq.append(s[:i])
print(a)
print(qqq)
這正是itertools.accumulate
內置 function 所做的:
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)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.