2012-10-22 5 views
1

조금 잃어 버렸습니다. myClass속성에 의한 클래스 인스턴스 목록 정렬 ip

[instance_of_myClass, instance_of_myClass, instance_of_myClass...] 

init은 다음과 같습니다

: 나는의 형식은 목록을 정렬 할

def __init__(self): 
    self.ip = "" 
    self.hostname = "" 
    self.further_informtion 

나는 그것이 그것에 의해 정렬 할 것은 내가

로 발견 IP 주소,이다
sorted(list_of_ips, key=lambda ip: long(''.join(["%02X" % long(i) for i in ip.split('.')]), 16)) 

How to sort IP addresses stored in dictionary in Python?

에서 나는 t을 그것을 옮기는 루블. 누군가 이걸로 나를 도울 수 있습니까? 다큐먼트에 따른

답변

1

:

키는 각리스트 요소에서 비교 키를 추출하기 위해 사용되는 하나 개의 인자의 함수를 지정한다. 기본값은 없음입니다.

key=lambda my_instace: long(''.join(["%02X" % long(i) for i in my_instance.ip.split('.')]), 16)) 
: IP하여 클래스 인스턴스를 정렬하려면, 그래서

그래서 당신이 열쇠로 제공 한 위의 람다 함수에 실제 인수가, 당신의 'myClass가'의 경우, 당신은 STH 같은를 작성해야

+0

감사합니다. 정확히 내가 필요한 것 – user857990

0
[instance_of_myClass, instance_of_myClass, instance_of_myClass...].sort(lambda a, b: cmp(a.ip, b.ip)) 
+0

위의 문자열 맹 글링에 기반한'ip' 객체에 대해'cmp'가 합리적인 방법으로 정의 된 경우에만 작동합니다. 의심 스럽습니다 ... 또한이 비교 사용법은 더 이상 사용되지 않습니다. 다른 답변에 사용 된 '키'를 선호합니다. – mgilson

관련 문제