列表的使用技巧

MAC地址格式转换

需求:

        有一个mac地址('2cd05afd1564'), 现需将其转换成带有:号分割的格式('2c:d0:5a:fd:15:64').

解决方法1:

def std_mac(mac):
    spliter = 2
    result = []
    for i in range(0, len(mac), spliter):
        result.append(mac[i:i+spliter])
    result = ''.join(result)
    return result

print(std_mac('2cd05afd1564'))


解决方法2:

def std_mac(mac):
    spliter = 2
    result = [mac[i:i+spliter] for i in range(0, len(mac), spliter)]
    result = ''.join(result)
    return result

print(std_mac('2cd05afd1564'))


解决方法3:

def std_mac(mac):
    spliter = 2
    l1, l2 = mac[::spliter], mac[1::spliter]
    return ':'.join(map(lambda x: ''.join(x), list(zip(l1, l2))))

print(std_mac('2cd05afd1564'))


总结:

    解决方法3通过利用列表的"间隔"分片特性, 感觉可以简化for的写法.

    备注: 解决方法1和解决方法2代码逻辑是一样的, 只不过解决方法2使用了推导列表的写法.

你可能感兴趣的:(列表的使用技巧)