In Python zie ik mensen woordenboeken maken zoals deze:
d = dict( one = 1, two = 2, three = 3 )
Wat als mijn sleutels gehele getallen zijn? Als ik dit probeer:
d = dict (1 = 1, 2 = 2, 3 = 3 )
Ik krijg een foutmelding. Natuurlijk zou ik dit kunnen doen:
d = { 1:1, 2:2, 3:3 }
wat prima werkt, maar mijn belangrijkste vraag is deze: is er een manier om integer-sleutels in te stellen met behulp van de dict()-functie/constructor?
Antwoord 1, autoriteit 100%
Ja, maar niet met die versie van de constructor. U kunt dit doen:
>>> dict([(1, 2), (3, 4)])
{1: 2, 3: 4}
Er zijn verschillende manieren om een dictaat te maken. Zoals gedocumenteerd, “het verstrekken van trefwoordargumenten [… ] werkt alleen voor sleutels die geldige Python-ID’s zijn.”
Antwoord 2, autoriteit 9%
Er zijn ook deze ‘manieren’:
>>> dict.fromkeys(range(1, 4))
{1: None, 2: None, 3: None}
>>> dict(zip(range(1, 4), range(1, 4)))
{1: 1, 2: 2, 3: 3}
Antwoord 3
a = dict(one=1, two=2, three=3)
Het opgeven van trefwoordargumenten zoals in dit voorbeeld werkt alleen voor sleutels die geldige Python-ID’s zijn. Anders kunnen alle geldige sleutels worden gebruikt.