2017-10-16 12 views
0

첫 번째 요소를 모두 삭제하려고합니다. 목록의 요소는 동일하지만, 코드가 추악합니다. 여기for 루프를 if-else 문과 병합하는 방법은 무엇입니까?

예 : 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

이 보이는). –

+2

정확히 무엇을하려하고 있습니까? 왜 여기에서 반복하는지 확신 할 수 없습니까? 그리고 코드가 여러분이 생각하는대로하고 있다고 생각하지 않습니다 ... –

+0

예제 입력과 원하는 출력을 포함 할 수 있습니까? –

답변

-1

영업 이익의 설명 후, 필요한 것은 무엇인가처럼 보인다, 우리가 연결할 수 있습니다 itertools dropwhile을 사용하여 또한

for ii, element in enumerate(my_list): 
    if element == my_list[0]: 
     continue 
    else: 
     break 
new_list = my_list[ii-1:] 

, 요소 0과 같다 처음에 모든 요소를 ​​삭제의 결과 첫 번째 요소 : 당신이 [`itertools` 조리법]에서 발견 unique_justseen` (https://docs.python.org/3/library/itertools.html#itertools-recipes`을 찾고있는 것처럼

new_list = [my_list[0]] + list(dropwhile(lambda x: x == my_list[0], my_list)) 
+0

첫 번째 요소와 두 번째 요소 만 확인하고 싶지는 않습니다. 예를 들면 다음과 같습니다 :'my_list = [1,1,1,9,9,2]''my_list = [1,9,9,2]' –

+0

그런 다음 몇 가지 방법으로 할 수 있습니다. 한 쌍의 예제를 포함하도록 답변을 변경했습니다. 더 명확하므로 첫 번째 샘플을 선호합니다. – Jblasco