gpt4 book ai didi

python - 解决我的问题有什么不同的方法?

转载 作者:行者123 更新时间:2023-12-02 00:38:13 25 4
gpt4 key购买 nike

我是 python 新手,遇到一个问题:我的任务是"Given a sentence, return a sentence with the words reversed"

例如Tea is hot --------> hot is Tea

我的代码是:

def funct1 (x):
a,b,c = x.split()
return c + " "+ b + " "+ a

funct1 ("I am home")

它确实解决了答案,但我有两个问题:

  1. 如何在不添加空格连接的情况下提供空格
  2. 除了 split 还有其他方法可以逆转吗?

谢谢。

最佳答案

您的代码很大程度上依赖于字符串始终包含正好 2 个空格的假设。您提供的任务描述并未表明情况总是如此。

可以通过使用 str.join[::-1] 反转列表来消除这种假设:

def funct1(x):
return ' '.join(x.split()[::-1])

print(funct1('short example'))
print(funct1('example with more than 2 spaces'))

输出

example short
spaces 2 than more with example

微优化可以使用reversed,因此不需要创建额外的列表:

return ' '.join(reversed(x.split()))

2) is there any other way to reverse than spliting?

由于要求是颠倒单词的顺序,同时保持每个单词内字母的顺序,所以这个问题的答案是“不是真的”。可以使用正则表达式,但这与按空格分割有很大不同吗?可能不会。无论如何,使用 split 可能会更快。

import re

def funct1(x):
return ' '.join(reversed(re.findall(r'\b(\w+)\b', x)))

关于python - 解决我的问题有什么不同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59412006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com