2017-07-31 5 views
-3

L'entrée peut aller jusqu'à (mais pas toujours) 20 valeurs comprises entre 1 et 99 séparées par 'ou' qui doivent être associées à une chaîne. L'entrée de l'utilisateur fournira à la fois la valeur et le "label" qui devrait remplacer cette valeur dans une sortie d'impression vers un fichier texte. Je peux également demander à l'utilisateur le nombre de valeurs qu'il fournit.Taille du dictionnaire dynamique Python avec entrée utilisateur pour la clé

Par exemple: entrée d'utilisateur:

1 ou 2 ou 10 ou 60

entrée Quantité:

entrée Label:

Aujourd'hui, deux jours, un mois, un an

Précision: les valeurs d'entrée ne correspondent pas mathématiquement à la chaîne de l'étiquette elle-même et sont abstraites.

{ '1': 'Aujourd'hui', '2': 'deux jours', '10': 'Un mois', '60': 'Un an'}

Comment puis-je comptabiliser les clés fournies par l'utilisateur et une quantité inconnue de paires?

+2

Vous devriez vraiment essayer de résoudre cela vous-même d'abord, puis postez une question avec des exemples de code pertinents. On dirait que vous essayez juste d'obtenir de l'aide pour vos devoirs ... – thaavik

Répondre

1

Tant que vous savez toujours que les paires s'alignent, vous n'avez pas à vous soucier du nombre de paires. Il suffit de rattrapante et propre, (je vais tout simplement mapstr.strip pour le nettoyage ...) puis zip, puis passer au type constructeur dict:

>>> in_1 = "1 or 2 or 10 or 60" 
>>> in_2 = "Today, Two Days, One Month, One Year" 
>>> dict(zip(map(str.strip, in_1.split('or')), map(str.strip, in_2.split(',')))) 
{'1': 'Today', '2': 'Two Days', '60': 'One Year', '10': 'One Month'} 

Cela suppose que votre entrée est « bien comportés », Ainsi, vous pouvez diviser de manière fiable sur "or" et des virgules: ",".