在字符串中执行IP反转

时间:2015-11-03 13:58:25

标签: python regex reverse

我正在执行用于执行字符串IP reversing的代码。

我已经完成了以下相同的代码:

def reverse(ip):
        if len(ip) <= 1:
                return ip
        return reverse(ip[1:]) + ip[0]

ip = '10.1.2.3'
print reverse(ip)

输出我的代码:现在它给出的结果如下:

3.2.1.01

预期输出而不是我需要的结果应显示如下:

3.2.1.10

请有人帮助我。

3 个答案:

答案 0 :(得分:4)

你可以试试这个:

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

ip = '10.1.2.3'
print reverse(ip)

输出:

3.2.1.10

答案 1 :(得分:1)

你被python坚持认为字符串是字符数组而被绊倒了。如何将它们转换为数字然后将它们反转?

>>> numbers = [int(v) for v in ip.split('.')]
>>> numbers.reverse()
>>> ip_reversed = '.'.join([str(v) for v in numbers])
>>> ip_reversed
'3.2.1.10'

答案 2 :(得分:1)

你可以这样试试,

>>> '.'.join(ip.split('.')[::-1])
'3.2.1.10'

在功能中:

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