이 경우 numpy 배열이 어떻게 도움이되는지 나는 알지 못합니다.
특히 데이터 구조를 다른 것으로 변환하면 (numpy 배열 또는 heapq의 튜플 목록) 각 튜플에 대해 반복되는 최대 값을 찾는 것보다 훨씬 느립니다. 데이터 구조를 변환 할 때 원본 구조를 반복하고 새 구조체에 대해 객체를 인스턴스화하고 새 구조체에 값을 저장하는 동시에 새 구조체를 사용하여 요청 된 값을 가져와야하기 때문입니다.
목록의 내장 함수 나 메서드를 사용하면 계산 속도가 빨라집니다. 내가 생각할 수있는 가장 사소한 구현 : 당신은 또한 가장 낮은 값 등의 물건 또는 정렬을 통해 목록 당신이 통과 할 수있는 값을 보여주고에 관심이 있다면
>>> li = [('a', 10), ('b', 30), ('c', 20)]
>>> max(li, key=lambda e : e[1])[0]
'b'
다른 가능한 것들 (그래서 당신은 원래 목록을 검사 한 번만) :!
>>> li = [('a', 10), ('b', 30), ('c', 20)]
>>> li.sort(key=lambda e : e[1])
>>> li
[('a', 10), ('c', 20), ('b', 30)]
>>> li[-1][0]
'b'
또는 :
>>> sorted(li, key=lambda e: e[1])[-1][0]
'b'
HTH!
출처
2012-01-01 13:17:18
mac
튜플을 하나의 구조에 저장해야합니까? 아니면 파리에서 생성 할 수 있습니까? 최대 항목이 여러 개 필요한 경우 'heapq'http://docs.python.org/library/heapq.html을 사용할 수 있습니다. 어떤 종류의 문제를 해결하고 있으며이 부분이 문제의 근원이라고 확신합니까? –
구조체에 튜플을 저장해야합니다. 난 그냥 최대 숫자 값과 해당 '키'를 찾고 싶다. – Dexter