从字典中的3元组中提取特定元素

时间:2016-03-30 15:45:27

标签: python

给出一本字典:

self.mapping = {}  # key= IP, value = (mac,id,port)

其中值为3元组值。如果我知道密钥,我如何从3元组中获取特定元素?例如,我想获得与id对应的IP

谢谢。

4 个答案:

答案 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)

您需要使用基本的python序列索引。 根据你的样本:

self.mapping['some IP'][1]

检查documentation

答案 3 :(得分:0)

首先,你得到整个元组:

self.mapping["192.168.1.1"]

然后你得到第二个元素:

 self.mapping["192.168.1.1"][1]