나는 경쟁 프로그램 사이트이고, (나에게)이 이상을 쓴 사람 파이썬 3 코드 발견 : 그것은 'Nothing'
를 출력두 대괄호 측 : 이상한 효과
[r,"Nothing"][r==""]
, r
경우는 빈 문자열
어떻게 호출되며 무엇을 의미합니까? 삼항 연산자처럼 보입니다.
나는 경쟁 프로그램 사이트이고, (나에게)이 이상을 쓴 사람 파이썬 3 코드 발견 : 그것은 'Nothing'
를 출력두 대괄호 측 : 이상한 효과
[r,"Nothing"][r==""]
, r
경우는 빈 문자열
어떻게 호출되며 무엇을 의미합니까? 삼항 연산자처럼 보입니다.
어떻게 이것이 호출되며 그 의미는 무엇입니까? 삼항 연산자처럼 보입니다.
Python AFAIK에는 공식 이름이 없습니다. 정말 목록을 색인하는 비열하고 복잡한 방법입니다.
당신은 False
입니다 True
및 r
r == ''
경우 r==""
가 "Nothing"
경우 선택합니다; 예를 들어 :
>>> [0, 1][True]
1
>>> [0, 1][False]
0
True
이후 및 False
때 당신 색인 목록, 각각 1
및 0
로 해석됩니다.
단지에서 제공하는 조각은 다음 두 가지 요소 [r, "Nothing"]
인덱스를 빈 문자열 [r=='']
와 r
의 비교 True/False
결과를 사용하여 임시 목록을 정의합니다.
가장 읽을 수있는 코드가 아니며 사용하지 않을 목록을 만드는 데 가장 좋은 아이디어는 아닙니다. 보다 효율적인
"Nothing" if r == "" else r
읽기 쉽고 많은 : 그것은 쉽게 조건식에 의해 대체 될 수
%timeit True if False else False
10000000 loops, best of 3: 32.9 ns per loop
%timeit [False, True][False]
10000000 loops, best of 3: 176 ns per loop
목록과 그것을 첨자 할 필요를 만들 필요가 없습니다; 조건부 및 일부 로딩. 이러한 맥락에서
if (r==""):
'Nothing'
else:
r
False
0으로 사용되고, True
1로서 :
>>> [r,'Nothing'][False]
'foo'
>>> [r,'Nothing'][True]
'Nothing'
는 다른 언어 'condition'?'if true':'if false'
유사한 한 줄의
그것은 번역한다. 가능한 가장 짧은 코드를 생성해야하는 곳은 보통 code golf에서 사용됩니다.
그래 맞아! 그건 까다 롭습니다! 고마워요! –