反转字符串中的每个单词

时间:2011-12-10 17:28:31

标签: python string

我的代码中遇到一个小问题。我试图扭转单词和字符串的字符。例如“狗跑”会成为“ehT god nar”

代码几乎可以工作。它只是不添加空格。你会怎么做?

def reverseEachWord(str):
  reverseWord=""
  list=str.split()
  for word in list:
    word=word[::-1]
    reverseWord=reverseWord+word+""
  return reverseWord 

8 个答案:

答案 0 :(得分:9)

你走在正确的轨道上。主要问题是""是一个空字符串,而不是空格(即使您修复了这个问题,您可能也不希望在最后一个单词后面有空格。)

以下是如何更简洁地完成这项工作:

>>> s='The dog ran'
>>> ' '.join(w[::-1] for w in s.split())
'ehT god nar'

答案 1 :(得分:3)

def reversed_words(sequence):
    return ' '.join(word[::-1] for word in sequence.split())

>>> s = "The dog ran"
>>> reversed_words(s)
... 'ehT god nar'

答案 2 :(得分:1)

您还可以使用 re 模块处理字符串中的噪声:

>>> import re
>>> s = "The \n\tdog \t\nran"
>>> " ".join(w[::-1] for w in re.split(r"\s+", s))
'ehT god nar'

或者如果你不在乎:

>>> s = "The dog ran"
>>> re.sub(r"\w+", lambda w: w.group(0)[len(w.group(0))::-1], s)
'Teh god nar'

答案 3 :(得分:0)

AtomicLong

答案 4 :(得分:0)

另一种方法是为您的文字reverseWord=reverseWord+word+" "添加空格,并使用.strip()

删除输出结尾处的空格
def reverse_words(str):
  reverseWord = ""
  list = str.split()
  for word in list:
    word = word[::-1]
    reverseWord = reverseWord + word + " "
  return reverseWord.strip()

查看post如何使用

答案 5 :(得分:0)

name=input('Enter first and last name:')
for n in name.split():
    print(n[::-1],end=' ')

答案 6 :(得分:0)

在不使用join / split的程序下面:

<script>
element.style.width = element.offsetWidth + "px"
<script>

答案 7 :(得分:0)

x = input(“输入任何句子:: ::”)

y = x.split('')

对于y中的i:

r = i[::-1]
print(r,end=" ")