如何在 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!",
    ]

原文链接:https://stackoverflow.com//questions/71555349/how-to-make-the-output-of-this-classic-pyramids-into-list-in-python

回复

我来回复
  • Schnitte的头像
    Schnitte 评论

    您可以在代码的开头创建一个空列表(我们称之为string_list),然后用string_list.append(s)将每个子字符串附加到该列表中,而不是打印子字符串。

    2年前 0条评论
  • Tamás Pápai的头像
    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年前 0条评论
  • Sowjanya R Bhat的头像
    Sowjanya R Bhat 评论

    这是你要找的:

    print("[")
    [print('"' + s[:i] + '"') for i in range(len(s)+ 1)]
    print("]")
    
    2年前 0条评论
  • inquirer的头像
    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年前 0条评论
  • Riccardo Bucco的头像
    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年前 0条评论