[PYTHON] Fonctionnement de la baie, etc. 1

Oui. C'est une histoire basée sur 2.7 séries. C'est douloureux (´ ・ ω ・ `) Et cela sera couvert de différentes manières. C'est épicé ... φ (・ ω ・ `c⌒ Les tableaux que vous utiliserez tôt pour les listes, les ensembles, les tapples, les dictionnaires (associations)? Je ne pense pas que l'utilisation de deque soit plus réservée aux débutants. .. Destinations de référence telles que deque http://docs.python.jp/2/library/collections.html

Référence: http://docs.python.jp/2/tutorial/datastructures.html Dans ce qui suit, le nom de variable du tableau s'écrit l.

Type de liste

Probablement le plus fréquemment utilisé. Il y a une garantie de l'ordre des éléments à l'intérieur. Un très bon enfant qui ne peut changer qu'une partie des éléments à l'intérieur, ou ajouter / supprimer au début, à la fin ou quelque part au milieu.

Initialisation

l=[]

Opération supplémentaire

l.append(x)
Ajoutez x à la fin de la liste. N'écrivez pas l = l.append (x). Ou plutôt, je serai vide. l.insert(i, x)
Ajoutez x à la i-ième position dans la liste. l.extend(l2)
Ajoutez l2 à la fin de la liste l. Si l = [1,2,3] l2 = [4,5,6], alors l = [1,2,3,4,5,6]. Si vous voulez conserver le l original, écrivez l3 = l + l2.

Supprimer l'opération

l.remove(x)
Supprimez le premier x de la liste (le plus jeune index, le plus à gauche). Si vous essayez de supprimer une valeur qui n'existe pas, vous obtiendrez une ValueError, alors essayez sauf ou si dans. l.pop(i)
Retirez le i-ème élément. i n'est pas spécifié, sinon il sera automatiquement ajouté à la fin. L'élément supprimé par p = l.pop (i) peut être affecté à une autre variable.

Autres opérations

l.count(x)
Comptez le nombre de x dans la liste. l.sort() Triez les éléments de la liste par ordre croissant. Même si le type int et le type str sont mélangés dans la liste, aucune erreur ne se produira, mais je ne pense pas qu'ils seront mélangés, donc les détails sont omis. l.reverse()
Trier dans l'ordre inverse dans la liste. Ce n'est pas par ordre décroissant. Si vous voulez le faire dans l'ordre décroissant, sort () puis reverse ().

Définir le type

Probablement le deuxième le plus fréquemment utilisé. Il n'y a aucun élément en double à l'intérieur. Il n'y a aucune garantie de commande.

Initialisation

l=set()

Opération supplémentaire

l.add(x)
Ajoutez x. L'ajout d'un élément qui existe déjà ne provoque pas d'erreur. Il semble que les éléments de type liste ne peuvent pas être insérés. Lors de la gestion des coordonnées par recherche d'itinéraire etc., il semble qu'il soit nécessaire de le faire de type l.add ((y, x)) ou taple.

Supprimer l'opération

l.remove(x)
Retirez le x à l'intérieur. Le x qui n'existe qu'une seule fois disparaît. l.pop() Retirez l'un des éléments à l'intérieur. Je ne pense pas qu'il y ait aucune garantie de ce qui sortira. L'élément récupéré par p = l.pop () peut être affecté à une autre variable.

Autres opérations

Pas de garantie d'ordre, pas de concept en soi? Il semble que vous pouvez frapper tous les éléments à l'intérieur avec for i in l:. Opération logique? Vous pouvez faire différentes choses avec. Je voudrais ajouter ceci plus tard.

Type de dictionnaire (tableau associatif)

Probablement le troisième le plus fréquemment utilisé. La clé n'est pas dupliquée dans l'élément à l'intérieur. Plus précisément, il est abrégé au moment de ce problème, mais dans la restriction d'entrée du problème, le candidat pour être une clé est de 0 à 10 ^ 9, mais en réalité, seuls environ 100 types de clés sont traités. L'utiliserez-vous? Je pense qu'il est assez difficile de créer un tableau d'une longueur de 10 ^ 9 en le remplissant de 0.

Initialisation

l={} Les éléments à l'intérieur sont {key1: value1, key2: value2} key et value sont appariés. La clé n'existe pas en double, donc si vous essayez d'ajouter une clé en double, celle qui existait à l'origine disparaîtra.

Opération supplémentaire

Ajouter une clé l[key]=value
Il est dangereux de l'ajouter soudainement, donc je pense que vous devriez vérifier si la clé existe déjà. Si l.has_key (clé): ou si vous saisissez l:? J'utilise uniquement l'ancien modèle sans raison particulière. La clé ne peut pas être modifiée et le type de liste ne peut pas être spécifié car il doit s'agir d'un élément immuable. Ajouter de la valeur Puisque différents types de valeurs peuvent être utilisés pour la valeur, augmentez / diminuez le nombre d'occurrences de clé de l [clé] + = 1, ou de l [clé] .append ("hoge") quelque chose qui appartient à une clé spécifique. Tu peux le faire.

Supprimer l'opération

Supprimer la clé elle-même (la valeur disparaît également) del l[key]
Supprimer la valeur Puisqu'une valeur doit exister, je pense qu'elle sera 0, "" ou [] selon le but.

Autres opérations

l.keys() Vous ne pouvez récupérer que la clé d'une autre liste avec s = l.keys () etc. for k,v in sorted(l.items()): Trier par valeur de clé for k,v in sorted(l.items(), key=lambda x:x[1])

Type de taple

Les éléments à l'intérieur ne peuvent pas être modifiés. Il y a un concept d'ordre.

Initialisation

l=() Même si c'est le cas, il sera traité comme immuable, donc je ne pense pas qu'il sera préparé par initialisation.

Ajouter / supprimer une opération

Je pense qu'il n'y a ni ajout ni suppression. Je ne pense pas qu'il soit possible de combiner deux ou plusieurs taples en réaffectant ou en attribuant une nouvelle variable, ou en essayant de couper et de faire quelque chose comme supprimer. .. ..

Autres opérations

Je pense qu'il n'y a rien de particulier à faire. Je pense qu'il n'est utilisé que dans les situations où il est nécessaire d'utiliser une clé de type dictionnaire, de le mettre dans un type défini et de changer les coordonnées, et de ne pas modifier les éléments à l'intérieur, et ce n'est pas un type taple.

Une histoire légère qui ne limite pas le type

Pour i dans la plage (n): ou la valeur d'index pour le type de liste, ne gérez pas strictement ce qui est susceptible d'être hors de portée, et essayez ~ sauf pour tricher avec passe lorsqu'une erreur se produit. Traitez jusqu'à ce qu'une erreur se produise, il est efficace, veuillez donc l'utiliser avec précaution. Si c'est une opération de tableau, je pense que je dois écrire une histoire sur la façon d'utiliser pour, mais cette fois.

Recommended Posts

Fonctionnement de la baie, etc. 1
[python] Opération de tranche de tableau
Opération de bit
Fonctionnement sans assistance des feuilles de calcul Google (etc.) en Python