我有清单:
mylist = ["8 - 9-", "7 - 6-", "4-"]
如何从mylist中的每个元素中删除最后一个“ - ”?
以便输出
mylist = ["8 - 9", "7 - 6", "4"]
编辑:最初我在“ - ”之前有一个空格,但那不应该在那里。道歉。
答案 0 :(得分:3)
rstrip
并且列表理解将完成这项工作:
mylist = [s.rstrip('-') for s in mylist]
严格来说,这并不能删除最后一个' - '来自每个元素",而是删除任何尾随破折号。但是根据您的样本数据,它可以满足您的需求。
例如:
>>> mylist = ["8 - 9-", "7 - 6-", "4-"]
>>> mylist = [s.rstrip('-') for s in mylist]
>>> print(mylist)
['8 - 9', '7 - 6', '4']
答案 1 :(得分:2)
使用 (Build.VERSION.SDK_INT <= 19 && mCropShape == CropImageView.CropShape.OVAL) {
//TURN off hardware acceleration
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
会更合适,因为它可以处理re
之后spaces
的情况。它也会删除它们。
-
输出:import re
print [re.sub(r"\s*-\s*$","",i) for i in ["8 - 9 -", "7 - 6 -", "4 -"]]
答案 2 :(得分:2)
如果你想要严格的“删除每个字符串中的最后一个短划线”,你可以这样做:
>>> mylist = ["8 - 9 -", "7 - 6 -", "4 -", "4 - ", "4 - 4"]
>>> [''.join(item.rsplit('-', maxsplit=1)) for item in mylist]
['8 - 9 ', '7 - 6 ', '4 ', '4 ', '4 4']
注意即使后面有一个数字,也会删除最后一个短划线。