Seite 1 von 1

Wert vorgeben und den Schlüssel einer Dictionary angeben

Verfasst: Mittwoch 3. Oktober 2018, 07:05
von turan_scorp
Hallo,
Bin totaler Neuling :roll: . Hoffe Ihr könnt bitte mir weiterhelfen.

İch habe eine Dictionary:

elems = {1:[1, 3, 9, 8], 2:[8, 9, 7, 6], 7:[6, 7, 15, 11], 5:[11, 15, 14, 10], 3:[3, 2, 9, 5], 4:[9, 5, 4, 7], 8:[7, 4, 13, 15], 6:[15, 13, 12, 14]}

Möchte eine Funktion definieren und mit dem parameter "node" (etwa so):

def get_conn_elems (node):

Dieser Funktion soll anhand vorgegebener parameter "node" dann herausfinden welche schlüssel "gemeint" sind und diese dann als Liste ausgeben. Also wenn z.bsp 15 angegeben wird soll "5,7,8,6"

soweit bin ich gekommen....Für Hinweise danke ich euch im Voraus...

def get_conn_elems (node):

elems = {1:[1, 3, 9, 8], 2:[8, 9, 7, 6], 7:[6, 7, 15, 11], 5:[11, 15, 14, 10], 3:[3, 2, 9, 5], 4:[9, 5, 4, 7], 8:[7, 4, 13, 15], 6:[15, 13, 12, 14]}

for node in elems.values():
if node in elems.values():

Re: Wert vorgeben und den Schlüssel einer Dictionary angeben

Verfasst: Mittwoch 3. Oktober 2018, 09:34
von __blackjack__
@turan_scorp: Die Funktion braucht ja ganz offensichtlich auch das Wörterbuch als Argument, denn das wird ja sehr wahrscheinlich nicht mit statischen Werten in dieser Funktion definiert sein.

In dem was Du da geschrieben hast wird das übergebene Argument `node` gar nicht verwendet. Es kann auch gar nicht verwendet werden, weil Du in der Schleife die Laufvariable auch `node` nennst. Die Schleife müsste zudem nicht über `values()` sondern über `items()` gehen, denn Du brauchst ja auch den Schlüssel wenn das Argument in den Werten eines Schlüssel/Wert-Paares enthalten ist.

Randbemerkung: Fang am besten jetzt sofort schon an mit komischen Abkürzungen wie `conn` und `elems` aufzuhören. Wenn `conn` für `connected` steht dann schreib auch `connected` und nicht `conn`. Und `elements` statt `elems`. Quelltext lesen sollte für niemanden zu einem Ratespiel werden, weder für uns, noch für Dich selbst wenn Du Deinen Quelltext in ein paar Monaten wieder anschaust. :-)