【问题标题】:Removing ' from strings in list [duplicate]从列表中的字符串中删除 ' [重复]
【发布时间】:2019-05-05 18:45:51
【问题描述】:

我正在尝试删除或忽略字符串列表中的' 符号(撇号)。我不知道我的 for 循环是完全错误还是什么:

n = ["a", "a's", "aa's"] #example list

for i in n:
    i.strip("'")

【问题讨论】:

  • .strip 仅从字符串的开头和结尾删除 as documented。另请注意,它返回一个新字符串,因此列表无论如何都不会改变。
  • 另外调用strip 除非你用它的返回值做点什么,否则什么也做不了。
  • 只做n = [x.replace("'", "") for x in n]strip 在上述 cmets 中解释的原因在这里不起作用。

标签: python list loops for-loop


【解决方案1】:

strip 在这里不起作用,请使用replace

In [9]: [i.replace("'",'') for i in lst]
Out[9]: ['a', 'as', 'aas']

【讨论】:

    【解决方案2】:

    这里有两个问题。

    • 首先strip在字符串中间不起作用,你必须使用`replace("'", "")
    • 其次,更重要的是,字符串是不可变的。即使i.strip(...) 做了你想做的事,它也不会改变 i。它只会产生一个新的字符串。因此,您必须存储该字符串。

    总结一下,试试类似的东西

    n = [i.replace("'", "") for i in n]
    

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 2011-12-17
      • 2016-10-24
      • 1970-01-01
      • 2013-05-13
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多