2016-11-07 1 views
1

이 같은 튜플의 목록을 반복하는 것을 시도하고있다 :좌표 튜플의 목록에서 가장 작은 값을 선택

[(0, 0.0083553666846612491), (1, 0.0054999681509501821)] 

과 튜플의 오른쪽에있는 작은 값을 찾은 다음 첨부를 저장 변수에 왼쪽 편 값.

이 문제에 대해 가장 좋은 방법은 무엇입니까?

답변

2

이 가장 작은 두 번째 값 터플 찾을 min() 함수에 key 인자를 사용할 수

>>> l = [(0, 0.0083553666846612491), (1, 0.0054999681509501821)] 
>>> smallest = min(l, key=lambda x: x[1])[0] 
>>> smallest 
1 
여기

람다 식 각 튜플 번째 항목을 선택하는 데 사용되며 min 그런 값을 사용 그것의 비교에서. min()은 전체 튜플을 반환하므로 [0]을 사용하여 첫 번째 항목을 추출 할 수 있습니다.

또한 operator.itemgetter를 사용할 수 있습니다

>>> from operator import itemgetter 
>>> smallest = min(l, key=itemgetter(1))[0] 
>>> smallest 
1 
0

이 작동합니다 :

min_tuple = min(your_list, key=lambda item: item[1]) 

그래서 우리는 당신은 후반 3 분 같았 튜플 comparition 방법

+0

를 제공하고 있습니다. 일반적으로, 나는 둘 다 답변을 upvote 것이지만, 당신이 제공하지 않은 동안 [mhawke] (http://stackoverflow.com/a/40456054/1218980) 훨씬 더 자세한 내용을 제공합니다. 단 하나의 라이너뿐만 아니라 제안하고있는 솔루션에 대한 설명을 제공하는 것이 좋습니다. –

+1

전 전화 번호부 (전화로 에세이를 쓰는 사람)가있는 전화 앱을 사용하고있었습니다. 제안에 감사드립니다. – woockashek

+0

예, 전화로 답변을 쓰는 ​​것이 최선의 방법이 아닙니다. –

관련 문제