我有一个巨大的行列表,每一行看起来如下
1 01 01 some random text
1 01 01
部分是一个引用号,它会逐行变化。我想删除三个引用编号之间的两个空格,使这些行看起来如下。
10101 some random text
显然,这需要一个for
循环。问题是我应该在循环中写什么我不能使用strip
,
for i in my_list:
i.strip()
因为那(如果有的话)会删除所有空格,给我
10101somerandomtext
我不想要。但是如果我写
for i in my_list:
i.remove(4)
i.remove(1)
我收到一条错误消息 'str' object has no attribute 'remove'
。在这种情况下,正确的解决方案是什么。
提前致谢。
最佳答案
如果数字总是在开头,您可以使用 str.replace
的事实函数接受一个可选参数 count
:
for l in mylist:
print l.replace(' ', '', 2)
请注意,我在这里执行 print
是有原因的:您不能就地更改字符串,因为字符串是不可变的(这也是为什么它们没有 remove
方法,并且 replace
返回修改后的字符串,但保持初始字符串不变)。因此,如果您需要在列表中使用它们,创建另一个这样的列表会更简洁:
newlist = [l.replace(' ', '', 2) for l in mylist]
像这样覆盖列表也是安全的:
mylist = [l.replace(' ', '', 2) for l in mylist]
关于python - 从列表项中删除特定的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668571/