【问题标题】:Python remove the trailing white space when inputting a string of numbersPython在输入一串数字时删除尾随空格
【发布时间】: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 等的答案,但它对我不起作用

为什么重要

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

【问题讨论】:

标签: python-3.x set whitespace removing-whitespace


【解决方案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(' ', '')
  • 感谢您提供更短的解决方案,对我来说,我仍然需要这些步骤,以便清楚发生了什么
猜你喜欢
  • 2013-06-25
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多