2010-07-19 2 views
11

정렬되지 않은 숫자의 목록이 주어지면 N보다 큰 가장 작은 숫자를 찾고 싶습니다 (있는 경우).python - list operations

C#에서

, 나는이 (생략 검사) 같은 것을 할 거라고 :

파이썬에서이 작업을 수행 할 수있는 짧은 읽을 수있는 방법은 무엇
var x = list.Where(i => i > N).Min(); 

?

+1

"READABLE"이란 무엇을 의미합니까? –

+0

@SLott "읽기/쓰기/쓰기/: (2) 쉽고 즐겁게 읽을 수 있습니다." "무엇을 읽을 수 있습니까?"라는 의미는 무엇입니까? ? –

답변

19
>>> l = [4, 5, 12, 0, 3, 7] 
>>> min(x for x in l if x > 5) 
7 
+0

소문자 ell은 변수 이름에 좋은 선택이 아닙니다 –

+0

@ 마리우스 : 실제로 이것을 저에게 downvoted 시켰습니까? 필터를 사용하는 – SilentGhost

2
x = min(i for i in mylist if i > N) 
4
min(x for x in mylist if x > N) 
3

다른 사람들은 지능형리스트의 답을 주었다. 대신 filter은 목록의 요소를 '필터링'하는 데 유용합니다.

min(filter(lambda t: t > N, mylist)) 
+1

은 발전기 표현 –

+0

+1을 사용하는 것보다 조금 느립니다. 나는이 질문에 부분적으로 파이썬 기술을 향상시키기 위해 질문했다. 그래서이 대답은 나의 목적을 상당히 잘 수행한다. –