【发布时间】:2012-09-15 06:01:30
【问题描述】:
我有一个字符串形式的mac地址,
00:23:34:d2:a4:00
这个mac地址如何索引到一个数组?
为了给出完整的图片,我将mac地址中的最后3个字节,即d2:a4:00,存储在字节数组中。如果 d2,a4,00 的对应字节是 00010001、00110010、00000000,那么通过连接这些二进制值可以得到 000100010011001000000000,如果将其转换为整数,则可以说是 1000200。所以,我可以访问与此相关的信息mac地址使用数组[1000200]。
如果我想反向执行,假设我得到了 1000200 号码,我如何将其转换为 mac 地址 00:23:34:d2:a4:00(假设所有条目的前 3 个字节都相同)。对不起,这是一个很长的帖子。如果您提供方向,这将是很大的帮助。效率非常重要(网络应用程序所需的执行时间应该非常少)。提前致谢。
【问题讨论】:
-
为什么不用字典?
some_dict["00:23:34:d2:a4:00"] -
对于 1000000 个条目,字典会太慢。字典仅适用于少量项目
-
@JustinCarrey:怎么会这样?字典的查找时间为 O(1)。查找时间不应随着字典的大小而显着增加。您是否对 dict 与数组的使用进行了基准测试?
-
问题是,我必须生成mac地址。也就是我取一个起始数0,转换成24位,即000000000000000000000000,再转换成mac地址,00:00:00:00:00:00。如果不这样做,我无法直接散列 MAC 地址。因此,我决定使用数组。
-
字典绝对不会像@JoelCornett 所说的那样慢。您正在谈论对 MAC 地址进行哈希处理,我不确定您为什么觉得需要对地址进行哈希处理 - 这对于您的程序中的其他内容是否需要?如果只是为了访问,字典是更好的选择。如果你只需要一个 mac 地址的哈希值,为什么不直接在 mac 地址上使用
id()内置函数?
标签: python python-3.x python-2.7 bytearray