我有点失落。我想对列表进行排序,格式为:
[instance_of_myClass, instance_of_myClass, instance_of_myClass...]
init
的{p> myClass
看起来像这样:
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?
我无法转移它。有人可以帮我这个吗?
答案 0 :(得分:1)
根据文件:
key指定一个参数的函数,该函数用于从每个列表元素中提取比较键。默认值为“无”。
所以你提供的上述lambda函数的实际参数是你的'myClass'的实例,所以为了通过ip对你的类实例进行排序,你应该写得像:
key=lambda my_instace: long(''.join(["%02X" % long(i) for i in my_instance.ip.split('.')]), 16))
答案 1 :(得分:0)
[instance_of_myClass, instance_of_myClass, instance_of_myClass...].sort(lambda a, b: cmp(a.ip, b.ip))