Python中MAC地址字典列表排序报错求助
MAC地址字典列表排序问题解决
报错原因是MAC地址中的B5、C1等属于十六进制字符,你的代码用int(y)默认按十进制解析,自然会触发格式错误。
只需要将十六进制字符串转换为整数时指定base=16,就能正确解析MAC分段:
a = [{"from":"00:25:B5:11:C1:00"},{"from":"00:25:B5:00:0A:08"},{"from":"00:25:B5:00:0B:08"},{"from":"00:25:B5:99:00:00"},{"from":"00:25:B5:99:00:00"},{"from":"00:25:B5:12:34:00"}] b = sorted(a, key=lambda x: [int(y, 16) for y in x['from'].split(':')]) print(b)
这段代码会按照MAC地址的十六进制数值从小到大排序,符合MAC地址的常规排序逻辑。
内容的提问来源于stack exchange,提问作者tonyy frank
相关产品推荐
相关产品推荐

