Python在输入一串数字时删除尾随空格

Posted

技术标签:

【中文标题】Python在输入一串数字时删除尾随空格【英文标题】:Python remove the trailing white space when inputting a string of numbers 【发布时间】:2021-12-10 05:19:34 【问题描述】:

我正在寻找在输入一串数字时删除尾随空格的解决方案

代码

vals_inp=input()
print('vals_inp',vals_inp)

vals_strip = vals_inp.rstrip()
print('vals_strip', vals_strip, type(vals_inp))

in_set=set(vals_strip) # problem happens here

输出

in_set '1', '2', '3', ' ' #PROBLEM ' '

尝试过的事情

我试过 rstrip lstrip rstrip 和 strip(' ') 我看到很多使用 rstrip 等的答案,但它对我不起作用

为什么重要

我的集合中的 ' ' 搞乱了后续代码。感谢所有帮助

【问题讨论】:

如果您输入的是1 2 3,那么' ' 就是您的数字的分隔符。 minimal reproducible example 显示实际输入,或至少显示对应于脚本的输出,会有所帮助。 这能回答你的问题吗? Get a list of numbers as input from the user 【参考方案1】:

检查一下:

vals_inp=input()
print('vals_inp',vals_inp)

vals_strip = vals_inp.rstrip()
print('vals_strip', vals_strip, type(vals))

in_set=set(vals_strip) # problem happens here

【讨论】:

vals_strip = vals.rstrip() ---> vals_strip = vals_inp.rstrip() 感谢您的帮助。我看到了更正。但它还没有解决它。现在我有: vals_inp=input() vals_strip = vals_inp.rstrip() in_set=set(vals_strip) print('in_set', in_set, type(in_set)) 但输出仍然是: in_set '1', '2', '3', ' ' - 即 ' ' 仍然存在 vals = [x for x in vals_inp if x != ''] 谢谢!!! - 重新安排我让它工作的顺序: vals_inp=input() list_set = list(vals_inp) vals = [x for x in list_set if x != ' '] set_vals = set(vals) OUTPUT: '1', ' 3', '2' 这个答案似乎提供了与问题相同的代码。它是如何解决问题的?【参考方案2】:

感谢@Awais Khan answer:

vals_inp=input() 
list_set = list(vals_inp) 
vals = [x for x in list_set if x != ' '] 
set_vals = set(vals) 
OUTPUT: '1', '3', '2'\

【讨论】:

请注意,这是不必要地创建两个列表,其中一个效率很低;你可以直接使用set_vals = set(vals_inp.replace(' ', '') 感谢您提供更短的解决方案,对我来说,我仍然需要这些步骤,以便清楚发生了什么

以上是关于Python在输入一串数字时删除尾随空格的主要内容,如果未能解决你的问题,请参考以下文章

如何自动删除vim中的尾随空格

python 删除前导和尾随空格

在 IntelliJ IDEA 12 中保存时删除尾随空格

如何在 Matlab 中保存时自动删除尾随空格?

让 Git 在提交前自动删除尾随空格

SQLPlus 在插入时删除 clob 字段中的尾随空格