Compréhension de dictionnaire

Une des façons les plus simples de créer des dictionnaires est en utilisant la compréhension. Comme pour la compréhension de liste, il est possible de créer un dictionnaire avec une boucle for en ligne :
squares = {n: n**2 for n in range(1, 11)}
print(squares)
# {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
De la même manière que pour les compréhensions de listes ou d'ensembles, toutes les règles de filtrage ou d'éléments conditionnels s'appliquent également aux compréhensions de dictionnaires.
names = ['Bob', 'Anna', 'Charles']
surnames = ['Brown', 'Kennedy', 'Jackson']

people = {names[i]: surnames[i] for i in range(len(names)) if names[i] != 'Anna'}
print(people)
# {'Bob': 'Brown', 'Charles': 'Jackson'}

Défi

Donnés n nombres séparés par un espace, vous devez créer un dictionnaire qui associe chaque nombre à son cube, tout en éliminant tous les nombres dont le carré se termine par 6.
La seule ligne d'entrée contient des nombres séparés par des espaces.
Le programme doit afficher les nombres qui satisfont la condition avec leur cube.
Entrée
Sortie
5 4 8 9 6 2 0 -4
5 125 8 512 9 729 2 8 0 0
Pouvez-vous résoudre ceci en une seule ligne 😎 ?
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue