所列代码有什么问题,怎么解决?
题目:翻转单词顺序。用户输入一个英文句子,请编程翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串是 "I love FishC.",则输出 "FishC. love I"。
注意1:用户输入的字符串可能会在前面或者后面包含任意数量的空格,但是反转后的结果将会去除这些空格(例如输入字符串是 " I love FishC. ",结果依然输出 "FishC. love I")。
注意2:用户输入的字符串中,单词之间可能不止一个空格,但是反转后的结果将统一使用一个空格作为单词之间的间隔(例如输入字符串是 "I love FishC.",结果依然输出 "FishC. love I")
问题代码:
m = input("请输入一个英文句子:")
n = m.strip().split(" ")
n.reverse()
a = []
for each in n:
k = each.replace(" ", "0")
i = 1
for x in k:
if x == "0":
i = 0
if i == 1:
a.append(k)
b = " ".join(a)
print(b)
返回:FishC. loveI 我感觉你这个代码有点繁琐,可以这样写:m = input("请输入一个英文句子:")
n = m.strip().split(" ")
n = list(filter(lambda x:bool(x), n))
n = " ".join(list(reversed(n)))
print(n)
整合成一行就是:print(" ".join(list(reversed(list(filter(lambda x:bool(x), input("请输入一个英文句子:").strip().split(" "))))))) 这个each里面是不会有空格的>>> m = input("请输入一个英文句子:")
['FishC.', '', '', '', '', '', 'love', '', '', 'I']
>>> n = m.strip().split(" ")
>>> n.reverse()
>>> print(n)
['FishC.', '', '', '', '', '', 'love', '', '', 'I']
所以只需要把列表里面的''给去掉就行了 tommyyu 发表于 2022-8-15 21:55
这个each里面是不会有空格的
所以只需要把列表里面的''给去掉就行了
是我没认真学习,split()直接就可以去掉空格{:10_266:} tommyyu 发表于 2022-8-15 21:56
我感觉你这个代码有点繁琐,可以这样写:
整合成一行就是:
高级{:10_275:}
不过有几个词还没见过{:10_278:}
看了答案已经知道问题在哪了{:10_323:}
页:
[1]