【发布时间】:2015-05-09 08:30:55
【问题描述】:
标题确实令人困惑,所以举个例子:假设我有一个值列表[1,2,3,2,1,4,5,6,7,8]。我想在列表中的两个1s 之间删除,并且通过pythonic 方式它也将最终删除第一个1 并输出[1,4,5,6,7,8]。不幸的是,由于我缺乏pythonic能力,我只能制作一些删除第一组的东西:
a = [1,2,3,2,1,4,5,6,7]
uniques = []
junks = []
for value in a:
junks.append(value)
if value not in uniques:
uniques.append(value)
for value in uniques:
junks.remove(value)
for value in junks:
a.remove(value)
a.remove(value)
a[0] = 1
print(a)
[1,4,5,6,7]
适用于第一次出现两次,不适用于较大列表中的下一次出现。我有一个想法,即在第一次出现的索引和第二次出现的索引之间删除,这将保留第二次,而不是让我做一些愚蠢的事情,比如a[0] = 1,但我真的不知道如何实现它。
【问题讨论】: