You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将列表中的字符串转换为大写标准MAC地址格式?

如何将点分隔的MAC地址转换为冒号分隔的大写格式?

给定列表:

list1 = [ '000c.29e6.8fa5', 'fa16.3e9f.0c8c', 'fa16.3e70.323b' ]

需求是将其中的MAC地址转换为00:0C:29:E6:8F:A5这样的冒号分隔大写格式。

你当前代码里的[::1]没有分割作用——它是Python切片语法,步长为1意味着原样返回整个字符串,这一步可以直接去掉。接下来只需要在清理后的字符串基础上,按每两个字符分组再用冒号连接即可。

方法一:基于现有代码修改

直接在你已有的清理步骤后,添加分组和连接逻辑:

list1 = [ '000c.29e6.8fa5', 'fa16.3e9f.0c8c', 'fa16.3e70.323b' ]
formatted_macs = []

for x in list1:
    # 去掉点并转大写
    cleaned_mac = x.replace('.', '').upper()
    # 每2个字符分割成一组,再用冒号连接
    formatted = ':'.join([cleaned_mac[i:i+2] for i in range(0, len(cleaned_mac), 2)])
    formatted_macs.append(formatted)

print(formatted_macs)
# 输出:['00:0C:29:E6:8F:A5', 'FA:16:3E:9F:0C:8C', 'FA:16:3E:70:32:3B']

方法二:用正则表达式匹配(适合严格校验格式)

如果需要确保输入是标准的4字符分段MAC,可以用正则先匹配再重组:

import re

list1 = [ '000c.29e6.8fa5', 'fa16.3e9f.0c8c', 'fa16.3e70.323b' ]
formatted_macs = []
# 匹配三段各4位的十六进制字符,忽略大小写
mac_pattern = re.compile(r'^([0-9a-f]{4})\.([0-9a-f]{4})\.([0-9a-f]{4})$', re.IGNORECASE)

for x in list1:
    match_result = mac_pattern.match(x)
    if match_result:
        # 拼接三段字符串
        full_mac = match_result.group(1) + match_result.group(2) + match_result.group(3)
        # 分组并连接,转大写
        formatted = ':'.join([full_mac[i:i+2] for i in range(0, 12, 2)]).upper()
        formatted_macs.append(formatted)

print(formatted_macs)
# 输出同上

内容的提问来源于stack exchange,提问作者Saeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 02:35:04