Seite 1 von 1

Verständnisfrage: dictionary Methode fromkey(seq,[value])

Verfasst: Freitag 9. November 2012, 17:44
von UbLnxPyth
Hallo, ich verstehe den Sinn dieser Methode nicht ganz. Wozu ist sie nützlich wenn ich
den Umweg über ein vorhandenes Dictionary gehen muß dessen Schlüssel/Werte in keinster Weise irgendwie übernommen werden.
Dann kann ich doch gleich ein neues Dictionary erstellen. Hier mal meine Testversuche:

Code: Alles auswählen

>>> dickie
    {'was': 'soll', 'das': 'hier'}
    
    >>> dickie.fromkeys({"so":1,"nun":"aber"})  # Test - was passiert wenn ich ein dictionary angebe
    {'nun': None, 'so': None}
    
    >>> dickie
    {'was': 'soll', 'das': 'hier'}
    
    >>> a = dickie.fromkeys({"so":1,"nun":"aber"})
    
    >>> a
    {'nun': None, 'so': None}
    
    >>> a = dickie.fromkeys({"so":1,"nun":"aber"},"Masse")
    
    >>> a
    {'nun': 'Masse', 'so': 'Masse'}
    
    >>> a = dickie.fromkeys({1,2},"Masse")
    
    >>> a
    {1: 'Masse', 2: 'Masse'}
    
    >>> a = dickie.fromkeys((1,2),"Masse")
    
    >>> a
    {1: 'Masse', 2: 'Masse'}

    # Dann geht doch auch gleich
    a = {1:"Masse",2:"Masse"]

Danke.

Re: Verständnisfrage: dictionary Methode fromkey(seq,[value]

Verfasst: Freitag 9. November 2012, 17:49
von DasIch
Jetzt probier das ganze nochmal für iterables die nicht statisch sind und deren Länge du nicht kennst.

Re: Verständnisfrage: dictionary Methode fromkey(seq,[value]

Verfasst: Freitag 9. November 2012, 18:07
von BlackJack
@UbLnxPyth: Du musst nicht über ein bestehendes Wörterbuch gehen, das macht in der Tat wenig Sinn. Diese Methode ist eine Klassenmethode, und die ruft man für gewöhnlich auf der Klasse auf und sie erzeugt und gibt ein neues Wörterbuch zurück. Macht dann Sinn wenn man ein Wörterbuch mit aus einem iterierbaren Objekt mit Schlüsseln erstellen möchte bei dem alle Schlüssel erst einmal auf den selben Wert gesetzt werden sollen.

Re: Verständnisfrage: dictionary Methode fromkey(seq,[value]

Verfasst: Freitag 9. November 2012, 21:49
von UbLnxPyth
Danke für die Antwort. Das werde ich dann wohl noch irgendwann lernen. Jetzt weiß ich wenigstens wofür das gebraucht wird.
Begreifen = gelernt

Dann ist das Beispiel oder die Nichterwähnung für was es eigentlich gedacht ist auf Deutsch besch..... !
Soweit hätte der Autor wohl denken können das man es so wie er es erklärt hat hinterfragt.
Ein Hinweis darauf so wie Ihr ihn jetzt gegeben habt hätte genügt. Man erkennt das es etwas fortgeschrittenes ist und
macht sich darüber keinere weiteren Gedanken.

:K

Man sieht sich. Da kommt wohl noch einiges auf mich zu. :mrgreen:

Re: Verständnisfrage: dictionary Methode fromkey(seq,[value]

Verfasst: Freitag 9. November 2012, 22:16
von BlackJack
@UbLnxPyth: Welcher Autor? Und ich würde nicht sagen, dass die Methode etwas Fortgeschrittenes ist.

Re: Verständnisfrage: dictionary Methode fromkey(seq,[value]

Verfasst: Freitag 9. November 2012, 22:31
von /me
UbLnxPyth hat geschrieben:Dann ist das Beispiel oder die Nichterwähnung für was es eigentlich gedacht ist auf Deutsch besch..... !
Soweit hätte der Autor wohl denken können das man es so wie er es erklärt hat hinterfragt.
Es steht doch alles da was man braucht:

http://docs.python.org/2/library/stdtyp ... t.fromkeys:

Code: Alles auswählen

fromkeys(seq[, value])

    Create a new dictionary with keys from seq and values set to value.

    fromkeys() is a class method that returns a new dictionary. value defaults to None.
Was ist daran denn unverständlich?

Code: Alles auswählen

>>> counter = dict.fromkeys(['apfel', 'birne', 'zitrone'], 0)
>>> counter
{'apfel': 0, 'zitrone': 0, 'birne': 0}