2017-09-28 6 views
-2

Je voudrais écrire une fonction qui accepte un dictionnaire en tant que paramètre et stockera dans une variable dans la fonction le premier élément ou la première valeur dans le dictionnaire. Comment est-ce que je fais ceci dans Python 3?stocker le premier élément du dictionnaire dans une variable

Par exemple:

random_function({'a':1, 'b':2, 'c':3}) 
> first_item = 'a' 
> first_value = 1 

Répondre

-1

Avec Ensuite vous pouvez consommer manuellement un iterator:

a = dict(a=1, b=2, c=3, d=4) 
b=iter(a.values()) 
print(next(b)) # print 1 
print(next(b)) # print 2 
print(next(b)) # print 3 
print(next(b)) # print 4 
print(next(b)) # Raise 'StopIteration'. You consumed all the values of the iterator. 
+0

super ça a marché, merci. Pourriez-vous expliquer comment cela fonctionne par exemple comme si je veux stocker la deuxième valeur alors qu'est-ce que j'écrirais? – Tasif

+0

Vérifiez la réponse de mise à jour. – Eduardo

2

dictionnaires par défaut ne sont pas commandés, de sorte que vous ne pouvez pas faire référence à la « première » élément dictionnaire parce que ce sera toujours changer. Si vous voulez référencer la «première» clé/valeur d'un dictionnaire, vous devrez utiliser une structure de données OrderedDict. Cela stockera l'ordre auquel les valeurs du dictionnaire ont été saisies

from collections import OrderedDict 

def random_function(some_dict): 
    first_key = list(some_dict.items())[0][0] 
    first_value = list(some_dict.items())[0][1] 
    print(first_key) 
    print(first_value) 

my_dictionary = OrderedDict({'first': 1, 'second': 2}) 
random_function(my_dictionary) 
> first 
> 1 
0

J'espère avoir compris votre question:

def storeValue(pDict): 

    if type(pDict) is dict: 
     if len(pDict) > 0: 
      storedValue = pDict[pDict.keys()[0]] 

    #decide what you want to do in the else cases 

    return storedValue 

testDict = {'a': 1, 
     'b': 2, 
     'c': 3} 

testValue = storeValue(testDict)