如何遍历列表并使用.strip()更新值

时间:2016-06-10 17:04:46

标签: python python-2.7

如果我有一个字符串列表并希望从中删除前导和尾随空格,我如何有效地使用.strip()来完成此操作?

这是我的代码(python 2.7):

for item in myList:
    item = item.strip()
    print item

for item in myList:
    print item

这些变化不会从一次迭代到下一次迭代。我尝试使用这里建议的地图(https://stackoverflow.com/a/7984192),但它对我不起作用。请帮忙。

注意,这个问题很有用:

  1. 答案已不存在
  2. 它涵盖了编程/ python可能使用的新错误
  3. 其标题涵盖一般搜索案例(如何更新列表中的值)和特定搜索案例(如何使用.strip()执行此操作)。
  4. 它解决了以前的工作,特别是地图解决方案,这对我不起作用。

2 个答案:

答案 0 :(得分:3)

我猜你试过了:

map(str.strip, myList)

创建一个新列表并返回它,保持原始列表不变。如果要与新列表进行交互,则需要将其分配给某个内容。如果需要,可以覆盖旧值。

myList = map(str.strip, myList)

你也可以使用列表理解:

myList = [item.strip() for item in myList]

map相比,许多人认为更具“pythonic”风格。

答案 1 :(得分:2)

我在这里回答了我自己的问题,希望它可以帮助我节省一些时间来搜索和试验它。

事实证明解决方案非常简单:

db.questions.find().sort({commentLength: -1})

在每个列表项的开头/结尾连接单引号,以帮助检测终端中的尾随/前导空格。如您所见,字符串现在将被正确剥离。

要更新列表中的值,我们需要通过索引实际访问列表中的元素并提交更改。我怀疑原因是因为我们传递值(将值的副本传递给item)而不是通过引用传递(直接访问基础列表[item])当我们声明变量" item,&#34 ;其范围是for循环的本地。