从Python列表中删除元素,直到找到特定字符

2024-06-16 14:47:45 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有这个Python列表

carachter = "@"

list = ['Montpellier', 'Saint-Etienne', '@', 'Strasbourg', 'Reims', '@', 'PSG', 'Olympique Lyonnais', '21:05', 'SPAL', 'Sassuolo', '@', 'Genoa', 'Cagliari', '20:30']

我怎样才能得到这个输出

list = ['PSG', 'Olympique Lyonnais', '21:05', 'Genoa', 'Cagliari', '20:30']

实际上,给定字符@,我想从列表中删除@和前面的两个元素。另一个例子如下

  • 输入:[1, 2, '@', 3, 4]
  • 输出:[3, 4]

谢谢


Tags: 列表listsaintpsggenoamontpelliercagliarietienne
1条回答
网友
1楼 · 发布于 2024-06-16 14:47:45

您可以获取要删除的索引并进行相应的筛选

>>> indexes = set(itertools.chain.from_iterable((i,i-1,i-2) for i in range(len(l)) if l[i]=='@'))
>>> res = [el for i,el in enumerate(l) if i not in indexes]
>>> res
['PSG', 'Olympique Lyonnais', '21:05', 'Genoa', 'Cagliari', '20:30']

相关问题 更多 >