2010-12-01 6 views
1

de devoirs, écrire une fonction qui est appelée comme: replace_all ({ 'a': '123', 'b': 'Zab'}, 'PBR)python: Accolade et question colon

ce qui est la déclaration de la fonction ressemble?

quel type de variable est 'a': '123' et {}?

+0

ont-ils fourni un exemple de sortie pour la fonction? –

+1

Chanceux de faire Python comme devoir :-) Nous avions Pascal. – invert

Répondre

3

C'est un dictionnaire (mapping).

Voir http://docs.python.org/library/stdtypes.html#dict.

Généralement, lorsque vous définissez une fonction en python, vous n'avez pas besoin de types. Python est un langage typé dynamiquement.

+0

Lisez aussi les dictionnaires ici: http://diveintopython.org/native_data_types/index.html#odbchelper.dict – invert

1

{} est le dictionnaire vide, {'a':'123'} est un dictionnaire avec une 'a' clé qui a la valeur associée '123'

la fonction ressemblerait à ceci:

def replace_all(replace_map, string): 
    pass # fill in here 
1

déclarations de fonction en Python ne comportent aucun type , car les variables en Python n'ont pas de types - les valeurs ont des types.

Vous ne déclarez pas la fonction séparément, vous l'écrivez simplement. La première ligne d'une fonction ressemble à def name_of_function(arguments, go, here):. Dans votre cas, il y a deux choses qui sont passées: {'a': '123', 'b': 'Zab'}, et 'acb'. Vous devez donc spécifier deux arguments et leur donner des noms.

{'a': '123', 'b': 'Zab'} est une seule "chose" - 'a': '123' est insignifiant en soi. Le tout est une valeur , pas une variable. Le type de la valeur est dict. La valeur représente un mappage logique: c'est-à-dire que la valeur code le concept de «a» correspond à «123» et «b» correspond à «Zab».

Je suppose, donné le nom replace_all, que l'intention est de regarder chaque caractère dans 'acb', et de le remplacer par la valeur correspondante (le cas échéant) de la dict.

Vous obtenez "la valeur correspondante" d'un dict en utilisant la "clé" comme index. Ainsi, si vous avez la valeur{'a': '123', 'b': 'Zab'} liée à la variablesmy_dict, puis l'évaluation my_dict['a'] donne le résultat '123', puisque c'est la valeur associée à la « une » clé dans cette dict. Si la clé n'est pas réellement dans la dict (par exemple my_dict['c']), cela va augmenter KeyError. Vous pouvez soit gérer l'exception, soit utiliser l'une des fonctions d'accès "sécurisées", telles que la méthode .get du dict. Reportez-vous à la documentation pour plus d'informations.

0

La déclaration d'une telle fonction est "def replace_all (Dictionary, String):". avec le '{}' désigne une structure de données de dictionnaire de python dans laquelle 'a', 'b' sont des clés et ils ont leurs propres valeurs correspondantes. '' '' '' 123 '"s'appelle un élément du dictionnaire (si vous considérez "'a': '123'" dans le contexte de ce même dictionnaire sinon c'est une chaîne) et ils peuvent être récupérés sous la forme d'un tuple.

Pour plus de détails, consultez le manuel python pour le dictionnaire et dict.items()