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

2024-04-18 00:06:07 发布

您现在位置:Python中文网/ 问答频道 /正文

给一本字典:

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

其中值是三元组值。如果我知道键,如何从3元组中获得特定元素?例如,我想得到与给定的IP对应的id。你知道吗

谢谢你。你知道吗


Tags: keyselfipid元素字典valueport
3条回答

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

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

签出documentation。你知道吗

Python字典和元组是使用括号表示法引用的。字典值使用相应的键引用;元组中的项通过索引引用,使用基于零的编号(即元组中的第一项具有索引0,第二项具有索引1,依此类推)。你知道吗

在您的情况下,可以使用IP地址键引用字典值:

self.mapping['IP address']

可以使用索引引用元组项:

my_tuple[1]

通过将两者结合起来,可以引用字典值元组中的特定项。在您的示例中,ID是索引1处的第二个值,因此您可以使用:

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

您可以使用get()方法以pythonic的方式正确地从dict解压数据:

mac_addr, c_id, port = self.mapping.get('192.168.1.1', (None, None, None))

它避免了在当前IP不在dict中时引发的KeyError异常

如果只想提取id字段:

_, c_id, _ = self.mapping.get('192.168.1.1', (None, None, None))

相关问题 更多 >

    热门问题