簡體   English   中英

如何將這個經典金字塔的output變成Python中的list

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM