web-dev-qa-db-fra.com

Quelle est la différence entre une accolade et un crochet en Python?

quelle est la différence entre une accolade et un crochet en python?

A ={1,2}
B =[1,2]

quand j’imprimais A et B sur mon terminal, ils ne faisaient aucune différence. Est-ce que c'est réel?

Et parfois, je remarquais que du code utilisait {} et [] pour initialiser différentes variables.

Par exemple. A=[], B={}

Y a-t-il une différence là-bas?

55
Haoyu Chen

Les accolades créent dictionnaires ou ensembles . Les crochets créent listes .

Ils s'appellent des littéraux ; un ensemble littéral:

aset = {'foo', 'bar'}

ou un dictionnaire littéral:

adict = {'foo': 42, 'bar': 81}
empty_dict = {}

ou une liste littérale:

alist = ['foo', 'bar', 'bar']
empty_list = []

Pour créer un ensemble vide, vous ne pouvez utiliser que set().

Les ensembles sont des collections d’éléments uniques et vous ne pouvez pas les commander. Les listes sont des séquences ordonnées d'éléments et les valeurs peuvent être répétées. Les dictionnaires associent les clés aux valeurs, les clés doivent être uniques. Les clés de jeu et de dictionnaire doivent également respecter d’autres restrictions, de sorte que Python puisse en assurer le suivi de manière efficace et savoir qu’elles sont et resteront uniques.

Il existe également le type Tuple type , qui utilise une virgule pour 1 ou plusieurs éléments, la parenthèse étant facultative dans de nombreux contextes:

atuple = ('foo', 'bar')
another_Tuple = 'spam',
empty_Tuple = ()
WARNING_not_a_Tuple = ('eggs')

Notez la virgule dans la définition another_Tuple; c'est cette virgule qui en fait un Tuple, pas la parenthèse. WARNING_not_a_Tuple N'est pas un tuple, il n'a pas de virgule. Sans les parenthèses, il ne vous reste plus qu'une chaîne.

Voir le chapitre sur les structures de données du Python pour plus de détails; les listes sont présentées dans le chapitre d'introduction .

Les littéraux de tels conteneurs sont également appelés affiche et la syntaxe permet la création procédurale du contenu basé sur la mise en boucle, appelée compréhensions .

80
Martijn Pieters

Ils créent différents types.

>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>
10
Daenyth

Ces deux accolades sont utilisées à des fins différentes. Si vous souhaitez simplement qu'une liste contienne des éléments et les organise par numéros d'index (à partir de 0), utilisez simplement le paramètre [] Et ajoutez des éléments si nécessaire. {} Ont la particularité de pouvoir attribuer des identifiants personnalisés à des valeurs telles que a = {"John": 14}. Maintenant, au lieu de faire une liste avec les âges et de se souvenir de l'âge, vous pouvez simplement accéder à l'âge de John par a["John"].

Le [] Est appelé une liste et {} Est appelé un dictionnaire (en Python). Les dictionnaires sont essentiellement une forme de liste pratique qui vous permet d’accéder aux données de manière beaucoup plus simple.

Cependant, il existe un piège pour les dictionnaires. Plusieurs fois, les données que vous avez entrées dans le dictionnaire ne restent pas dans le même ordre qu'auparavant. Par conséquent, lorsque vous passez en revue chaque valeur une par une, elle ne sera pas dans l'ordre que vous attendez. Il existe un dictionnaire spécial pour résoudre ce problème, mais vous devez ajouter cette ligne from collections import OrderedDict Et remplacer {} Par OrderedDict(). Mais, je ne pense pas que vous deviez vous en préoccuper pour le moment.

1
ytpillai