You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现列表元素倒序打印且每个元素独占一行?

倒序打印列表元素:最优实现&代码修改方案

嘿,这个需求其实在Python里有几种高效又简洁的实现方式,先给你拆解最优思路,再帮你修改现有代码~

最优实现方式

Python处理列表倒序遍历,首推这两种方案:

  • 切片反转法:用words[::-1]直接生成反转后的新列表,语法简单易懂、可读性拉满,适合绝大多数常规场景。
  • 反向迭代器:用reversed(words),它不会创建新列表,而是返回一个迭代器遍历原列表的反向元素,内存效率更高,特别适合处理超大列表。

这两种方式的时间复杂度都是O(n),属于线性时间复杂度,是效率最高的实现方式。

现有代码修改方案

先提个小细节:原函数名用了list,这会覆盖Python内置的list类型,很容易埋下bug,所以我把函数名改成了collect_words,这是写Python代码的好习惯哦。

下面是两种修改后的代码:

方案1:切片反转(简洁直观)

def collect_words():
    words = []
    while True:
        output = input("Type a word: ")
        if output == "stop":
            break
        words.append(output)  # else可以省略,逻辑更简洁
    # 遍历反转后的切片列表,每行打印一个元素
    for element in words[::-1]:
        print(element)

collect_words()

方案2:reversed迭代器(内存友好)

如果需要处理大量数据,这个方案更省内存:

def collect_words():
    words = []
    while True:
        output = input("Type a word: ")
        if output == "stop":
            break
        words.append(output)
    # 反向迭代原列表,不生成新列表
    for element in reversed(words):
        print(element)

collect_words()

测试一下:当你依次输入i、am、programming、with、python,再输入stop,就会按python、with、programming、am、i的顺序每行打印一个元素啦~

内容的提问来源于stack exchange,提问作者bhr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:10:46