Tôi có một đoạn mã mà trông như thế này:Làm thế nào để sắp xếp địa chỉ IP được lưu trữ trong từ điển bằng Python?
ipCount = defaultdict(int)
for logLine in logLines:
date, serverIp, clientIp = logLine.split(" ")
ipCount[clientIp] += 1
for clientIp, hitCount in sorted(ipCount.items), key=operator.itemgetter(0)):
print(clientIp)
và nó loại phân loại IP, nhưng như thế này:
192.168.102.105
192.168.204.111
192.168.99.11
đó là không đủ tốt vì nó không nhận ra rằng 99 là một số nhỏ hơn 102 hoặc 204. Tôi muốn đầu ra giống như thế này:
192.168.99.11
192.168.102.105
192.168.204.111
Tôi tìm thấy this, nhưng tôi không chắc chắn cách cấy ement nó trong mã của tôi, hoặc nếu nó thậm chí có thể kể từ khi tôi sử dụng từ điển. lựa chọn của tôi là gì đây? Cảm ơn bạn ..
Bạn cũng có thể làm điều này với các chức năng 'map': 'sắp xếp (ipCount.items(), key = lambda x: tuple (map (int, x.split ('.'))))) ' – Handyman5
Tôi thấy các câu trả lời được cập nhật bằng cách sử dụng inet_aton là khác nhau: lệnh gọi struct.unpack của Ludo và của Ferdinand thì không. Chức năng này có cần phải gọi để đặt hàng hay không? –
@randomtoor: Đó là * không * cần thiết. 'inet_aton' trả về một chuỗi gồm 4 ký tự và Python biết cách so sánh và sắp xếp các chuỗi. –