为什么在python3中执行列表操作时,我会在整数列表中获得额外的空间


num = [100,1,82,-1]
print(sorted(num))

上面的代码段给出了以下输出:[-1, 1, 82, 100]。但是,我需要它像[-1,1,82,100]一样。但到目前为止,我一直无法理解Python为什么要用任何类型的列表操作在列表中添加空白!即使是简单的加法或列表方法,如extend()sort()等,也会提供带有前导空格的输出。

虽然它们并不重要,但我正在努力解决一个leetcode问题,因为这些领先的空白,我的答案被拒绝了。

输出遵循类似英语的语法,逗号后面跟着空格,即使你喜欢与否。xD您可以通过重写该方法以您想要的方式更改它。

您可以创建一个自定义列表类型,如下所示,然后覆盖它的printed,如果出于调试目的需要:

class SortMeOnPrint(list):
def __repr__(self):
return str(sorted(self)).replace(' ', '')

num = SortMeOnPrint([100,1,82,-1])
print(num)  # [-1,1,82,100]

如果需要,您还可以将其概括为一个助手函数,以消除新类型本身的次要开销:

def print_wo_spaces(L):
print(str(L).replace(' ', ''))
num = [100,1,82,-1]
print_wo_spaces(sorted(num))  # [-1,1,82,100]

最新更新