Python: woordenboek maken met dict() met integer-sleutels?

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.

Other episodes