从列表中的所有字符串中删除一个字符

时间:2015-08-13 17:51:46

标签: python

我有清单:

mylist = ["8 - 9-", "7 - 6-", "4-"]

如何从mylist中的每个元素中删除最后一个“ - ”?

以便输出

mylist = ["8 - 9", "7 - 6", "4"]

编辑:最初我在“ - ”之前有一个空格,但那不应该在那里。道歉。

3 个答案:

答案 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']

注意即使后面有一个数字,也会删除最后一个短划线。