擅长:python、mysql、java
<p>我会存储一个字典,其中IPs(或者IP+设备名,如果只是IP不是唯一的)作为键,其他细节(风扇速度、温度)作为另一个字典的值。这将为您提供基于IP的固定时间查找,这在这里很重要,因为您将经常执行许多查找和更新。数据结构如下所示:</p>
<pre><code>device_messages = {
'192.168.4.3': {'device name': 'Cisco FW', 'fanspeed': 5, temperature: 56},
'192.168.6.1': {'device name': 'NSX', 'fanspeed': 10, temperature: 90},
'192.168.1.9': {'device name': 'Windows XP', 'fanspeed': 18, temperature: 600}
}
</code></pre>
<p>因此,如果有新设备进入,您可以使用以下工具执行查找:</p>
<pre><code>if new_device_ip in device_messages: # this is faster than searching a list
# update with missing information
device_messages[new_device_ip]['fan_speed'] = new_fan_speed
# and so on
else:
device_messages[new_device_ip] = {}
</code></pre>
<p>使用对象列表然后搜索具有特定IP的条目的效率要低得多(<em>O(n)</em>,而不是使用字典得到的<em>O(1)</em>)。你知道吗</p>