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在输入一串数字时删除尾随空格的主要内容,如果未能解决你的问题,请参考以下文章