我正在尝试删除列表中所有相等的第一个元素,但我发现我的代码很难看。
以下示例:my_list = [1,1,1,9,9,2]
成为my_list = [1,9,9,2]
for spot_prec, spot in zip(my_list, my_list[1:]):
if spot_prec == spot:
del spot_prec
else:
break
如何压缩它?我听说过生成器表达式,但是我有一个问题要包含我的else break
语句。
答案 0 :(得分:-1)
在澄清OP后,似乎需要的是:
for ii, element in enumerate(my_list):
if element == my_list[0]:
continue
else:
break
new_list = my_list[ii-1:]
另外,使用itertools dropwhile,我们可以连接元素0和删除开头处等于第一个元素的任何元素的结果:
new_list = [my_list[0]] + list(dropwhile(lambda x: x == my_list[0], my_list))