Python列表中的IP反转

时间:2015-11-16 11:19:08

标签: python list ip

我正在尝试在Python列表中执行IP的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)

有人让我知道我们如何解决这个问题,其他人让我知道任何简单的解决办法。

2 个答案:

答案 0 :(得分: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']
    

答案 1 :(得分: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)