2016-03-30 3 views
2

ein Wörterbuch Gegeben:ein bestimmtes Element aus 3-Tupel im Wörterbuch

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

Wo der Wert 3-Tupel Werte. Wenn ich den Schlüssel kenne, wie bekomme ich ein bestimmtes Element aus dem 3-Tupel? Zum Beispiel möchte ich id erhalten, die IP entspricht.

Vielen Dank.

+0

'id = self.mapping [ "192.168.1.1"] [1]' – Selcuk

Antwort

0

Sie müssen die einfache Indexierung von Python-Folgen verwenden. entsprechend Ihrer Probe:

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

prüfen documentation aus.

0

Zuerst du das ganze Tupel erhalten:

self.mapping["192.168.1.1"] 

Dann erhalten Sie nur das zweite Element:

self.mapping["192.168.1.1"][1] 
2

Python Wörterbücher und Tupel Dirac-Notation referenziert werden. Wörterbuchwerte werden mit entsprechenden Schlüsseln referenziert; Elemente in einem Tupel werden durch den Index referenziert, wobei eine nullbasierte Nummerierung verwendet wird (d. h. das erste Element in einem Tupel hat den Index 0, die Sekunde 1 usw.).

In Ihrem Fall können Sie Wörterbuch Werte unter Verwendung von IP-Adresse Schlüssel Referenz:

self.mapping['IP address'] 

Sie Elemente Tupel verweisen können Indizes mit:

my_tuple[1] 

Durch die Kombination der beiden, können Sie eine bestimmte Referenz Element in einem Wörterbuchwerttupel. In Ihrem Beispiel ist ID der zweite Wert bei Index 1, so verwenden Sie:

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

Sie get()-Methode verwenden, um richtig Daten aus Ihrem dict in einem pythonic Weise zu entpacken:

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

Es vermeidet KeyError Ausnahme, die ausgelöst wird, falls die aktuelle IP nicht in Ihrem Diktat ist.

Wenn Sie nur ID-Feld extrahieren:

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