在python中,如何从末尾删除某些项(直到某个索引)?
假设有一个列表<代码>XYZ=['a'、'b'、'c'、'd'、'e']。现在我想使用循环从末尾删除最多在python中,如何从末尾删除某些项(直到某个索引)?,python,list,loops,Python,List,Loops,假设有一个列表XYZ=['a'、'b'、'c'、'd'、'e']。现在我想使用循环从末尾删除最多'c'。如果有人有任何想法,请帮助。试试这个 >>> XYZ[:XYZ.index('c')] ['a', 'b'] # to keep 'c' # >>> XYZ[:XYZ.index('c')+1] # ['a', 'b', 'c'] 在这里,我们不删除。我们正在按要求对清单进行切片 要从列表中删除元素 >>> del XYZ[XYZ.ind
'c'
。如果有人有任何想法,请帮助。试试这个
>>> XYZ[:XYZ.index('c')]
['a', 'b']
# to keep 'c'
# >>> XYZ[:XYZ.index('c')+1]
# ['a', 'b', 'c']
在这里,我们不删除。我们正在按要求对清单进行切片
要从列表中删除元素
>>> del XYZ[XYZ.index('c')+1:]
>>> XYZ
['a', 'b', 'c']
编辑-1:
要处理@Austin comments提到的特殊情况,
对于列表['a','b','c','a','c','d','e']
我们需要做如下所示的事情
>>> XYZ = ['a', 'b', 'c', 'a', 'c', 'd', 'e']
>>> XYZ.reverse()
>>> del XYZ[:XYZ.index('c')]
>>> XYZ.reverse()
>>> XYZ
['a', 'b', 'c', 'a', 'c']
试试这个
>>> XYZ[:XYZ.index('c')]
['a', 'b']
# to keep 'c'
# >>> XYZ[:XYZ.index('c')+1]
# ['a', 'b', 'c']
在这里,我们不删除。我们正在按要求对清单进行切片
要从列表中删除元素
>>> del XYZ[XYZ.index('c')+1:]
>>> XYZ
['a', 'b', 'c']
编辑-1:
要处理@Austin comments提到的特殊情况,
对于列表['a','b','c','a','c','d','e']
我们需要做如下所示的事情
>>> XYZ = ['a', 'b', 'c', 'a', 'c', 'd', 'e']
>>> XYZ.reverse()
>>> del XYZ[:XYZ.index('c')]
>>> XYZ.reverse()
>>> XYZ
['a', 'b', 'c', 'a', 'c']
我将讨论一种
下一种方法,它避免了另一个答案中的双重反转:
XYZ = ['a','b','c','d','c','e','g']
if 'c' in XYZ:
XYZ = XYZ[:-next((i for i, x in enumerate(reversed(XYZ)) if x == 'c'))]
# ['a', 'b', 'c', 'd', 'c']
我将讨论一种下一种方法,它避免了另一个答案中的双重反转:
XYZ = ['a','b','c','d','c','e','g']
if 'c' in XYZ:
XYZ = XYZ[:-next((i for i, x in enumerate(reversed(XYZ)) if x == 'c'))]
# ['a', 'b', 'c', 'd', 'c']
为什么使用循环
?这是家庭作业吗?实际上我想一次删除。您的列表是否包含重复的元素?为什么使用循环?这是家庭作业吗?实际上我想一次删除。您的列表是否包含重复的元素?因为这是一个列表切片,它与OP预期的输出不匹配。正如OP在我的评论中提到的,他想删除元素。我猜添加@JonCelements在我的评论中提到的del
或重新初始化XYZ
值将使此解决方案完成。因为这是一个列表切片,它与OP预期的输出不匹配。正如OP在我的评论中提到的,他想删除元素。我猜添加@JonCelements在我的评论中提到的del
,或重新初始化XYZ
值将使此解决方案完整。评论不用于扩展讨论;此对话已结束。评论不用于扩展讨论;这段对话已经结束。