【问题标题】:How do I reverse each word in a string, but in the same sentence order? [duplicate]如何反转字符串中的每个单词,但句子顺序相同? [复制]
【发布时间】:2013-08-07 08:47:22
【问题描述】:

我试过这样做

while 1:
    line = input('Line: ')
    print(line[::-1])

但所做的只是把整个句子倒过来,我想知道是否有人可以帮助我使用一个将“hello world”转换为“olleh dlrow”而不是“dlrow olleh”的程序,以及如何制作一个循环当输入什么都没有或只是一个空格时停止?提前谢谢你!

【问题讨论】:

    标签: python python-3.x converter reverse


    【解决方案1】:

    你需要拆分句子,反转单词,然后重新组合。

    最简单的分割方法是在空格上使用str.split();重组只是用空格重新连接反向单词的情况:

    ' '.join([word[::-1] for word in line.split()])
    

    演示:

    >>> line = 'hello world'
    >>> ' '.join([word[::-1] for word in line.split()])
    'olleh dlrow'
    

    【讨论】:

    • 非常感谢!而对于while循环,如果输入中没有任何内容,是不是直接进入下一个命令?
    • 如果line 是一个空字符串,则拆分返回一个包含一个空字符串作为内容的列表,因此此代码反转空字符串,然后重新加入该空字符串,从而产生一个空字符串。 :-)
    • 如果你想跳过空行,只需测试它们; if not line: continue.
    • @pepr:在str.join() 中使用列表推导比生成器表达式更快,因为str.join() 会将生成器表达式转换为列表无论如何;它需要循环两次序列以首先计算输出大小,然后构建字符串。列表理解在这里的速度测试中击败了生成器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 2010-11-03
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多