2015-11-16 84 views
0

我想在Python列表中執行IP的IP反向。在Python反向IP列表

對於反轉IP我將列表中的項目轉換爲字符串,並執行相同的操作。

但不幸的是,我沒有得到像我預期的結果。

考慮使用IP列表如下:

['1.3.6.5', '8.9.25.4'] 

預期相反的結果:

['5.6.3.1', '4.25.9.8'] 

獲得逆轉的結果:

4.25.9.5, 8.6.3.1 

這是連接我的代碼:

 ips = [''.join(ip) for ip in ips if ip] 

     def reverse(ips): 
       if len(ips) <= 1: 
         return ips 
       l = ips.split('.') 
       return '.'.join(l[::-1]) 

     ips = str(ips).strip('[]') 
     ips = ips.replace("'", "") 

     ip_reversed = reverse(ips) 
     LOG.info(ip_reversed) 

有人讓我知道我們如何解決這個問題,否則有人讓我知道任何簡單的解決方案。

回答

1

使用list_comprehension。也就是說,

  • 迭代在每個元件

  • 根據點

  • 分裂然後反轉獲得的列表

  • 現在,隨着點加入其中。

    >>> s = ['1.3.6.5', '8.9.25.4'] 
    >>> ['.'.join(i.split('.')[::-1]) for i in s] 
    ['5.6.3.1', '4.25.9.8'] 
    
+0

它是這樣工作的魅力...! – Murali

+0

很高興知道,Thalaiva .. –

0
ipList = ['1.3.6.5', '8.9.25.4' , '192.168.0.125'] 

for ip in ipList: 
    # '192.168.0.125'(ip)=> ['192','168','0','125'](split)=> ['125'.'0'.'168'.'192'](split)[::-1] 
    ip_reverse = '.'.join(ip.split('.')[::-1]) 
    print(ip_reverse)