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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
UbLnxPyth
User
Beiträge: 2
Registriert: Dienstag 13. Januar 2009, 17:26

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Jetzt probier das ganze nochmal für iterables die nicht statisch sind und deren Länge du nicht kennst.
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.
UbLnxPyth
User
Beiträge: 2
Registriert: Dienstag 13. Januar 2009, 17:26

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:
BlackJack

@UbLnxPyth: Welcher Autor? Und ich würde nicht sagen, dass die Methode etwas Fortgeschrittenes ist.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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}
Antworten