2015-11-16 52 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)