python - 在python中的给定字符串中反转单词
问题描述
我已经在 python 中编写了代码,如果我将整数作为输入,它可以正常工作,但在给出字符串时它不会。
例子 -
输入:
2
i.like.this.program.very.much
pqr.mno
预期输出:
much.very.program.this.like.i
mno.pqr
但是我得到的输出与输入相同。字符串没有反转。我写的代码是 -
t=int(input())
for i in range(t):
string1=input()
li1=string1.split()
li2=li1[::-1]
output=' '.join(li2)
print(output)
运行上述输入后,我得到 -
输出:
i.like.this.program.very.much
pqr.mno
解决方案
错误输出的原因
您的程序无法正常工作的原因是因为您试图在空格split()
字符处拆分字符串,这是未指定参数时的默认值。但是您确实希望将字符串拆分为'.'
字符。
所以当你尝试时string1.split()
,你得到的清单是-
['i.like.this.program.very.much']
而我们真正想要得到正确输出的是——
['i', 'like', 'this', 'program', 'very', 'much']
我们正确使用string1.split('.')
,即在.
字符处拆分字符串,然后反转字符串。请注意,在加入字符串时,我们也必须使用.
。
所以你应该修改你的代码如下。
正确的代码 -
t=int(input())
for i in range(t):
string1=input()
li1=string1.split('.') #<-- Notice the parameter specified here. It will now split at `.` character
li2=li1[::-1] # Reverse the list
output='.'.join(li2) # Convert back into string. Again notice, we are joining at . character to get expected output
print(output)
输入 :
2
i.like.this.program.very.much
pqr.mno
输出 :
much.very.program.this.like.i
mno.pqr
希望这可以帮助 !
推荐阅读
- wpf - 从 Winform 过渡到 WPF
- assembly - 如何确定 Intel x86 汇编代码中使用的初始寄存器值?
- c++ - 将结构传递为 void *
- pyspark - Pyspark:根据来自其他 pyspark 数据框的列名创建一个 pyspark 数据框
- bash - 是否有一个函数可以从两个文件的比较中提取行的唯一差异?
- c# - 如何读取 XML 文件并获取其中的所有 URL 链接并将它们保存到 TXT 文件?C#
- django - Django 文本选择行为
- regex - 捕获子组的多个实例
- node.js - 如果 Docker,图像节点:12.4 运行单个 js 文件时,“内部/模块/cjs/loader”中的错误
- c# - 用于在 asp .net 核心中绑定的复杂类型的转换器