您如何更换列表中某些项目的一部分? (Python 3.x)说我有一个列表:
x = ["part2keep removeMe", "saveme removeMe", "third length to throw it off removeMe", "element to save", "KeepThisPart"]
如果我只想删除“removeMe”部分,你会怎么做呢?到目前为止我有这个:
def replaceExampleA(x, y):
for i in x:
if i[len(i)-8:len(i)-1] == "removeMe":
y.append(i[0: -12])
else:
y.append(i)
编辑:刚刚意识到我犯了一个错误 - 列表更像是这样的:
x = ["part2keep removeMe 123", "saveme removeMe 12", "third length to throw it off removeMe 83", "element to save", "KeepThisPart"]
我需要从“removeMe”元素中删除数字。感谢
答案 0 :(得分:2)
x = [s.replace('removeMe', '') for s in x]
答案 1 :(得分:1)
这可以通过列表理解来实现
x = ["part2keep removeMe", "saveme removeMe", "third length to throw it off removeMe"]
print(y.replace(' removeMe', '') for y in x)
答案 2 :(得分:0)
您可以使用正则表达式来确保代码始终只在字符串末尾出现removeMe
时才会被删除:
import re
x = ["part2keep removeMe", "saveme removeMe", "third length to throw it off removeMe", "element to save", "KeepThisPart"]
new_x = [re.sub('\sremoveMe$', '', i) for i in x]
输出:
['part2keep', 'saveme', 'third length to throw it off', 'element to save', 'KeepThisPart']
答案 3 :(得分:0)
您也可以使用map
功能
new_x = map(lambda e: e.replace('removeMe', ''), x)
这样做的好处就是你得到了一台发电机。因此在某些情况下,这会更有效。如果你想要一个列表,就像其他答案一样,那么你需要将它转换回一个列表
new_x = list(new_x)