2017-10-15 5 views
-2

J'ai fait ce code mais je reçois le contraire.Comment créer une dict avec des lettres comme des clés et des valeurs comme valeur ASCII? Je ne veux pas le faire lettre par lettre tho

asciidict = dict() 
alfapetTeller = range(97,123) 
for i in alfapetTeller: 
    asciidict[str(i)] = chr(i) 
print(asciidict) 
+1

Avez-vous envisagé d'utiliser simplement la fonction 'ord' dont le but est de prendre un caractère et de vous donner le code approprié? –

+0

Ce que Jon a dit. Pourquoi pensez-vous avoir besoin de ce dictionnaire? –

Répondre

2

Modification de la ligne d'affectation à:

asciidict[chr(i)] = i 

fera l'affaire. Toutefois, notez qu'il ya utils en Python pour simplifier cette tâche:

>>> import string 
>>> d = {c: ord(c) for c in string.ascii_lowercase} # doesn't require you to know the range 
>>> d 
{'a': 97, 'b': 98, 'c': 99, 'd': 100, 'e': 101, 'f': 102, 'g': 103, 'h': 104, 'i': 105, 'j': 106, 'k': 107, 'l': 108, 'm': 109, 'n': 110, 'o': 111, 'p': 112, 'q': 113, 'r': 114, 's': 115, 't': 116, 'u': 117, 'v': 118, 'w': 119, 'x': 120, 'y': 121, 'z': 122} 

Voir la documentation sur string module, ord et chr.

+0

C'est très utile, merci. quelle méthode puis-je utiliser pour l'imprimer à l'envers? –

+0

Imprimer quoi en arrière? La clé, les paires de valeurs? – schwobaseggl

+0

l'ensemble dictons réellement. mais j'ai trouvé ce code pour faire le travail print ('{' + ','. join (str (asciidict) [1: -1] .split (',') [:: - 1]) + '}' –

0

Ensuite, vous faites juste le contraire.

asciidict[chr(i)] = i 

Ou si vous voulez des valeurs ascii en tant que chaînes.

asciidict[chr(i)] = str(i)