给出一本字典:
self.mapping = {} # key= IP, value = (mac,id,port)
其中值为3元组值。如果我知道密钥,我如何从3元组中获取特定元素?例如,我想获得与id
对应的IP
。
谢谢。
答案 0 :(得分:2)
使用括号表示法引用Python字典和元组。使用相应的键引用字典值;元组中的项目由索引引用,使用从零开始的编号(即元组中的第一项具有索引0,第二项为1,依此类推)。
在您的情况下,您可以使用IP地址密钥来引用字典值:
self.mapping['IP address']
您可以使用索引来引用元组项目:
my_tuple[1]
通过组合这两者,您可以引用字典值元组中的特定项。在您的示例中,ID是索引1处的第二个值,因此您将使用:
self.mapping['IP address'][1]
答案 1 :(得分:1)
您可以使用get()
方法以pythonic方式正确解压缩dict中的数据:
mac_addr, c_id, port = self.mapping.get('192.168.1.1', (None, None, None))
如果当前的IP不在您的词典中,它可以避免引发KeyError
异常。
如果您只想提取id字段:
_, c_id, _ = self.mapping.get('192.168.1.1', (None, None, None))
答案 2 :(得分:0)
答案 3 :(得分:0)
首先,你得到整个元组:
self.mapping["192.168.1.1"]
然后你得到第二个元素:
self.mapping["192.168.1.1"][1]