如何从列表中删除空格?为什么 `if` 语句不起作用?

How to remove empty spaces from a list? Why the `if` statement does not work?

我必须编写一个程序来获取数字列表并打印出包含每个数字的平方的列表。例如,如果你传入 [3,-1,0,2,10],你的程序应该 return [9,1,0,4,100]。我编写了程序,但输出包含一个平方数列表,逗号后有空格。我做了一个 if 状态,但它什么也没做。那么如何删除空格呢?请帮忙!

def Squaring():
  List = eval(input("Please enter a list of numbers: "))
  r = []
  for i in List:
    r.append(i ** 2)

  return r

  for x in r:
    if x == ' ':
      r.remove(x)

  return r

def main():
  x = Squaring()
  print(x)

main()

创建的列表必须包含空格来分隔每个项目。但它不是那个特定列表的元素。在打印之前,您需要在最后将列表转换为字符串。在计算每个数字的平方之间,您需要将数字转换为 int。这样您就可以对该数字进行数学运算,因为在获取数字时,它将作为字符串而不是整数获取。 map 函数将对可迭代对象中的每个元素应用一个函数,并 return 结果列表。所以 map(str,x) 会将列表 x 中的每个元素转换为字符串,因为你不能打印整数 + 字符串是最终的。

def Squaring():
  List = eval(input(": "))
  r = []
  for i in List:
    r.append(int(i) ** 2)

  return r

def main():
  x = Squaring()
  print('[' + ','.join(map(str, x)) + ']')

main()

space 是列表的默认打印格式,您可以在没有 space 的情况下打印它:

print "[" + ",".join(map(str, x)) + "]"

您可以使用 json 模块转储具有更多控制权的 python 对象,例如:

>>> from json import dumps
>>> print(dumps(r, separators=(',',':'))
[9,1,0,4,100]