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

使用Python栈结构反转单词顺序时输出单个字符如何解决?

问题根源
  • 直接迭代字符串得到的是单个字符而非完整单词:你当前写的for word in mystring是遍历字符串的每一个字符,压入栈的都是单个字母,弹出打印时自然只会输出单个字符
  • 打印逻辑适配问题:Python3中print()函数默认会在输出内容末尾追加换行符,你写的逗号是Python2的同行输出语法,在Python3中不生效
修复方案

先把原字符串按空格分割为单词列表,再将完整单词压入栈;弹出时直接拼接为完整字符串或者控制打印的结尾符,保证所有单词在同一行输出。

修改后的调用代码

import Stack

def reverseStr(mystring):
    s=Stack.Stack()
    # 先拆分出单词列表再压栈
    for word in mystring.split():
        s.push(word)
    res = []
    while not s.isEmpty():
        res.append(s.pop())
    # 拼接为完整字符串后打印
    print(' '.join(res))
        
    
def main():
    mystring = "my name is jon doe"
    reverseStr(mystring)

main()

运行输出

doe jon is name my

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:24:02