[PYTHON] if 문을 사용하여 목록 작성
PYTHONif 문을 사용하여 목록 작성
두 iterables를 비교하고 두 iterables에 나타나는 항목을 인쇄하고 싶습니다.
>>> a = ('q', 'r')
>>> b = ('q')
# Iterate over a. If y not in b, print y.
# I want to see ['r'] printed.
>>> print([ y if y not in b for y in a])
^
그러나 ^ 문자가있는 곳에 잘못된 구문 오류가 발생합니다. 이 람바 함수에 대한 잘못된 점은 무엇입니까?
해결법
-
==============================
1.너 주문 잘못이야. if는 for의 뒤에 있어야합니다 (if-else 삼항 연산자에없는 경우).
너 주문 잘못이야. if는 for의 뒤에 있어야합니다 (if-else 삼항 연산자에없는 경우).
[y for y in a if y not in b]
그러나 이것은 작동 할 것입니다 :
[y if y not in b else other_value for y in a]
-
==============================
2.if를 끝에 둡니다.
if를 끝에 둡니다.
[y for y in a if y not in b]
목록 내포는 중첩 된 전체 지정 상대와 동일한 순서로 작성되며 본질적으로 위의 명령문은 다음과 같이 변환됩니다.
outputlist = [] for y in a: if y not in b: outputlist.append(y)
귀하의 버전 대신 다음을 시도했습니다 :
outputlist = [] if y not in b: for y in a: outputlist.append(y)
목록 이해는 적어도 하나의 외부 루프로 시작해야합니다.
-
==============================
3.이것은 람다 함수가 아닙니다. 그것은 목록 이해입니다.
이것은 람다 함수가 아닙니다. 그것은 목록 이해입니다.
주문 변경 :
[ y for y in a if y not in b]
-
==============================
4.목록 이해 공식 :
목록 이해 공식 :
[<value_when_condition_true> if <condition> else <value_when_condition_false> for value in list_name]
따라서 다음과 같이 할 수 있습니다.
[y for y in a if y not in b]
데모 목적으로 만 : [y가 b에없는 경우 y] [a의 y에 대해 False]
from https://stackoverflow.com/questions/15474933/list-comprehension-with-if-statement by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 프로그램 종료 전에 무엇인가하기 (0) | 2018.10.11 |
---|---|
[PYTHON] "#! / usr / bin / env python"을 사용하여 파이썬에 인수를 전달할 수 없습니다. (0) | 2018.10.11 |
[PYTHON] 파일의 텍스트를 파이썬으로 대체하기 (0) | 2018.10.11 |
[PYTHON] 파이썬 2.7의 문자열에서 유니 코드 \ u2026을 제거하는 중 (0) | 2018.10.11 |
[PYTHON] 파이썬에서 stdout에 C 공유 라이브러리가 인쇄되지 않게하려면 어떻게해야합니까? (0) | 2018.10.11 |