簡體   English   中英

如何將for循環與if-else語句合並?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM