欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python對(duì)ip地址進(jìn)行排序、分類(lèi)的方法詳解

 更新時(shí)間:2023年07月26日 08:40:17   作者:IT之一小佬  
這篇文章主要介紹了python對(duì)ip地址進(jìn)行排序、分類(lèi)的方法詳解,IP協(xié)議全稱(chēng)為“網(wǎng)際互連協(xié)議Internet?Protocol”,IP協(xié)議是TCP/IP體系中的網(wǎng)絡(luò)層協(xié)議,需要的朋友可以參考下

1、使用socket庫(kù)對(duì)ip進(jìn)行排序

示例代碼:

import socket
ip_list = ['10.5.11.1', '192.168.1.33', '10.5.2.4', '10.5.1.3', '10.5.11.13', '10.5.11.12', '10.5.1.1', '10.5.1.2',
          '10.5.1.11', '10.5.1.13']
print(sorted(ip_list, key=socket.inet_aton))
for i in sorted(ip_list, key=socket.inet_aton):
    print(i)

運(yùn)行結(jié)果:

2、使用sort()函數(shù)構(gòu)造排序

示例代碼:

ip_list = ['192.168.1.33', '10.5.2.4', '10.5.1.3', '202.98.96.68', '133.120.1.1', '192.168.1.22']
print(sorted(ip_list, key=lambda x: (int(x.split('.')[0]), int(x.split('.')[1]), int(x.split('.')[2]))))
ip_lst = sorted(ip_list, key=lambda x: (int(x.split('.')[0]), int(x.split('.')[1]), int(x.split('.')[2])))
for i in ip_lst:
    print(i)

運(yùn)行結(jié)果:

3、對(duì)ip地址進(jìn)行分類(lèi)

如:這兒按最后一位進(jìn)行分類(lèi),寫(xiě)入不同的文件中。此處忽略對(duì)ip地址的排序。

示例代碼:

ip_list = ['192.168.1.33', '10.5.2.4', '10.5.1.3', '202.98.96.68', '133.120.1.1', '192.168.1.22']
for ip in ip_list:
    last_ip_num = ip.split('.')[-1]
    with open('data/xxx.xxx.xxx.{}.txt'.format(last_ip_num), 'a', encoding='utf-8') as f:
        f.write(ip)

運(yùn)行結(jié)果:

優(yōu)化上述代碼,當(dāng)ip_list列表中有數(shù)以?xún)|計(jì)的ip時(shí),上述代碼效率是非常低的,耗時(shí)主要在打開(kāi)文件寫(xiě)數(shù)據(jù)方面,可以把每一類(lèi)ip先暫時(shí)存儲(chǔ),最終一次性寫(xiě)入文件中。

示例代碼:

ip_list = ['192.168.1.33', '10.5.2.33', '10.5.1.33', '202.98.96.1', '133.120.1.1', '192.168.1.1']
ip_dic_save = {}
for ip in ip_list:
    last_ip_num = ip.split('.')[-1]
    if f'xxx.xxx.xxx.{last_ip_num}.txt' not in ip_dic_save:
        ip_dic_save[f'xxx.xxx.xxx.{last_ip_num}.txt'] = []
        ip_dic_save[f'xxx.xxx.xxx.{last_ip_num}.txt'].append(ip + ';')
    else:
        ip_dic_save[f'xxx.xxx.xxx.{last_ip_num}.txt'].append(ip + ';')
print(ip_dic_save)
path = 'data/'
for key, value in ip_dic_save.items():
    with open(path + key, 'a', encoding='utf-8') as f:
        f.writelines(value)

運(yùn)行結(jié)果:

如果數(shù)據(jù)量過(guò)大,ip_dic_save會(huì)占用較大內(nèi)存,可以對(duì)字典中的每個(gè)key:value鍵值對(duì)進(jìn)行判斷,若value列表長(zhǎng)度到達(dá)某個(gè)長(zhǎng)度時(shí),可以分批次寫(xiě)入到文件中。

到此這篇關(guān)于python對(duì)ip地址進(jìn)行排序、分類(lèi)的方法詳解的文章就介紹到這了,更多相關(guān)python對(duì)ip排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中類(lèi)的相互調(diào)用的實(shí)踐

    python中類(lèi)的相互調(diào)用的實(shí)踐

    本文主要介紹了python中類(lèi)的相互調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python處理xml文件操作詳解

    python處理xml文件操作詳解

    這篇文章主要介紹了python處理xml文件操作詳解,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • Python四大金剛之集合詳解

    Python四大金剛之集合詳解

    這篇文章主要介紹了Python的集合,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-10-10
  • 最新評(píng)論