2016-10-08 2 views
1

모든 중복을 제거한 후 기존 목록에서 목록을 만들고 싶습니다. "for 루프"를 사용하면 프로그램이 작동하지만 목록 이해를 사용하면 아무런 반응이 없습니다.이 조건 기반 목록 이해가 작동하지 않는 이유는 무엇입니까?

#use for loop 
l=[1,2,2,3,1,1,2] 
j=[] 

for i in l: 
    if i not in j: 
     j.append(i) 

print l 
print j 


#using list 
l1=[1,2,2,3,1,1,2] 
j1=[] 

j1=[i for i in l1 if i not in j1] 

print l1 
print j1 
+0

복제본을 제거하려는 경우 목록을 i로 설정하여 변환 할 수 있습니다.'set (l)' –

답변

2

[i for i in l1 if i not in j1] 평가하고 J1 할당된다. 따라서 평가 중에 j1이 비어 있습니다.

가 BTW :

j1=list(set(l1)) 
0

j1가 시작시 []하고되지 않습니다 : 쉽게 제거 중복이었다 당신이 목록을해야하는 경우 list 기능에 다음 set 기능 목록을 통과하는 것입니다 목록 이해력의 중간 지점에서 업데이트됩니다. 목록 이해 대신에 이것을 할 수 있습니다 :

l1=[1,2,2,3,1,1,2] 
j1=list(set(l1)) 

print l1 
print j1 
관련 문제