如果我有一个字符串列表并希望从中删除前导和尾随空格,我如何有效地使用.strip()来完成此操作?
这是我的代码(python 2.7):
for item in myList:
item = item.strip()
print item
for item in myList:
print item
这些变化不会从一次迭代到下一次迭代。我尝试使用这里建议的地图(https://stackoverflow.com/a/7984192),但它对我不起作用。请帮忙。
注意,这个问题很有用:
答案 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循环的本地。