[英]How to merge a for loop with an if-else statement?
我試圖刪除列表中所有彼此相等的第一個元素,但是我發現代碼很丑陋。
這里是一個示例: 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
語句時遇到了問題。
在對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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.