我正在尝试在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)
有人让我知道我们如何解决这个问题,其他人让我知道任何简单的解决办法。
答案 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)