鱼C论坛

 找回密码
 立即注册
查看: 1438|回复: 4

[已解决]所列代码有什么问题,怎么解决?

[复制链接]
发表于 2022-8-15 21:36:53 | 显示全部楼层 |阅读模式
1鱼币
题目:翻转单词顺序。
       用户输入一个英文句子,请编程翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串是 "I love FishC.",则输出 "FishC. love I"。
注意1:用户输入的字符串可能会在前面或者后面包含任意数量的空格,但是反转后的结果将会去除这些空格(例如输入字符串是 "   I love FishC.   ",结果依然输出 "FishC. love I")。
注意2:用户输入的字符串中,单词之间可能不止一个空格,但是反转后的结果将统一使用一个空格作为单词之间的间隔(例如输入字符串是 "I   love        FishC.",结果依然输出 "FishC. love I")
问题代码:
  1. m = input("请输入一个英文句子:")
  2. n = m.strip().split(" ")
  3. n.reverse()
  4. a = []
  5. for each in n:
  6.     k = each.replace(" ", "0")
  7.     i = 1
  8.     for x in k:
  9.         if x == "0":
  10.             i = 0
  11.     if i == 1:
  12.         a.append(k)
  13. b = " ".join(a)
  14. print(b)
复制代码

返回:FishC.   love  I
最佳答案
2022-8-15 21:36:54
我感觉你这个代码有点繁琐,可以这样写:
  1. m = input("请输入一个英文句子:")
  2. n = m.strip().split(" ")
  3. n = list(filter(lambda x:bool(x), n))
  4. n = " ".join(list(reversed(n)))
  5. print(n)
复制代码

整合成一行就是:
  1. print(" ".join(list(reversed(list(filter(lambda x:bool(x), input("请输入一个英文句子:").strip().split(" ")))))))
复制代码

最佳答案

查看完整内容

我感觉你这个代码有点繁琐,可以这样写: 整合成一行就是:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-15 21:36:54 | 显示全部楼层    本楼为最佳答案   
我感觉你这个代码有点繁琐,可以这样写:
  1. m = input("请输入一个英文句子:")
  2. n = m.strip().split(" ")
  3. n = list(filter(lambda x:bool(x), n))
  4. n = " ".join(list(reversed(n)))
  5. print(n)
复制代码

整合成一行就是:
  1. print(" ".join(list(reversed(list(filter(lambda x:bool(x), input("请输入一个英文句子:").strip().split(" ")))))))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-15 21:55:24 | 显示全部楼层
这个each里面是不会有空格的
  1. >>> m = input("请输入一个英文句子:")
  2. ['FishC.', '', '', '', '', '', 'love', '', '', 'I']
  3. >>> n = m.strip().split(" ")
  4. >>> n.reverse()
  5. >>> print(n)
  6. ['FishC.', '', '', '', '', '', 'love', '', '', 'I']
复制代码

所以只需要把列表里面的''给去掉就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-15 22:46:36 | 显示全部楼层
tommyyu 发表于 2022-8-15 21:55
这个each里面是不会有空格的
所以只需要把列表里面的''给去掉就行了

是我没认真学习,split()直接就可以去掉空格
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-15 23:00:34 | 显示全部楼层
tommyyu 发表于 2022-8-15 21:56
我感觉你这个代码有点繁琐,可以这样写:
整合成一行就是:

高级
不过有几个词还没见过
看了答案已经知道问题在哪了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 10:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表