Python:从列表对象中移除空格

81 投票
7 回答
357443 浏览
提问于 2025-04-16 01:11

我有一个从mysql数据库中获取的对象列表,这些对象里面有空格。我想去掉这些空格,比如下面这样,但我用的代码不管用?

hello = ['999 ',' 666 ']

k = []

for i in hello:
    str(i).replace(' ','')
    k.append(i)

print k

7 个回答

13

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这种情况可能是因为我们没有正确理解某些概念或者使用了不合适的方式来解决问题。

例如,当我们在写代码时,可能会用到一些特定的语法或者函数。如果我们不清楚这些语法的用法,就容易出错。就像在做一道数学题,如果我们不明白公式的意思,最后得到的结果可能就不对。

所以,遇到问题时,首先要冷静下来,仔细检查自己的代码,看看是否有拼写错误或者逻辑上的问题。同时,也可以查阅一些资料,了解相关的知识,帮助自己更好地理解和解决问题。

总之,编程就像学习一门新语言,刚开始可能会觉得很难,但只要多练习,多学习,就一定能掌握它。

result = map(str.strip, hello)
21

列表推导式 [num.strip() for num in hello] 是最快的写法。

>>> import timeit
>>> hello = ['999 ',' 666 ']

>>> t1 = lambda: map(str.strip, hello)
>>> timeit.timeit(t1)
1.825870468015296

>>> t2 = lambda: list(map(str.strip, hello))
>>> timeit.timeit(t2)
2.2825958750515269

>>> t3 = lambda: [num.strip() for num in hello]
>>> timeit.timeit(t3)
1.4320335103944899

>>> t4 = lambda: [num.replace(' ', '') for num in hello]
>>> timeit.timeit(t4)
1.7670568718943969
163

在Python中,字符串是不可变的,这意味着它们的内容不能被直接修改。所以,当你使用replace方法时,它并不会改变原来的字符串,而是会返回一个新的字符串。你可以这样修改你的代码:

for i in hello:
    j = i.replace(' ','')
    k.append(j)

不过,有一种更好的方法可以达到你的目的,那就是使用列表推导式。例如,下面的代码使用strip方法来去掉列表中每个字符串前后的空格:

hello = [x.strip(' ') for x in hello]

撰写回答