2017-11-03 5 views
1

을 배열을 복제하고 대체 할 목록 이해를 사용 : distance = [0,6,6,maxsize]파이썬 - 나는 목록이 요소

가 어떻게이 -1으로 모든 0 제거로 대체 모든 maxsize 요소와 새 목록을 만들 수 지능형리스트를 사용할 수 있습니까? 지금까지이 시도

distance1 = [6,6,-1] 

하지만 구문 오류입니다 :

나는이 같은 결과를하려면 사전에

distance1=[-1 if v == maxsize else v if v != 0 for v in distance] 

감사합니다!

편집 : maxsize는 비단뱀 일반 정수 유형에서 지원되는 최대 양의 정수입니다.

+1

나는 모두가 "최대 크기 란 무엇입니까?" –

+0

구문 오류는 두 번째 삼자에 else 문을주지 않고 삼항자를 중첩한다는 것입니다. –

+0

maxsize는 파이썬 일반 정수형에서 지원되는 최대 양의 정수입니다. 나는 이것을 원래 게시물에 지정해야만했음을 유감스럽게 생각합니다. – StarLlama

답변

2

maxsize는 변수, 배열 또는 문자열의 길이입니까?

distance1 = [-1 if v == maxsize else v for v in filter(lambda x: x, distance)] 
+0

죄송합니다. 지정해야합니다. Maxsize는 Pythons 정수 유형이 지원하는 최대 정수입니다. 가져올 수 있습니다 : sys import maxsize – StarLlama

+0

하지만 고맙습니다. – StarLlama