Je vais l'écrire car cela a le sens de laisser un mémo de connaissances que j'oublie d'écrire même si je pense qu'il n'est pas souvent utilisé dans AtCoder. L'explication est superficielle, donc si vous voulez en savoir plus, veuillez consulter d'autres articles.
On vérifie souvent si la variable a est incluse dans la liste des données par «if a in data». Cependant, j'ai été impressionné s'il y avait quelque chose que je pourrais facilement écrire sur le numéro, alors je vais le présenter.
qiita1.py
box = [4, 2, 1, 0, 3]
print(box.index(3))
#4
En utilisant ʻindex () `de cette manière, la réponse que la valeur de 3 est la quatrième est renvoyée.
Il est très difficile de dire les en-têtes, mais en termes simples, vous avez l'impression de pouvoir définir des priorités lors du tri d'une liste multidimensionnelle. Je pense que c'est encore difficile, mais ...
box = [[1,1,8], [8,6,4], [5,9,8]]
Si vous avez une telle liste multidimensionnelle, vous pouvez penser comme ça. "Je veux les organiser dans l'ordre croissant, mais je veux qu'ils soient dans l'ordre croissant ** dans l'ordre du troisième nombre, du premier nombre et du deuxième nombre." Lorsque cela se produit, l'expression lambda entre en jeu.
qiita2.py
box = [[1,1,8], [8,6,4], [5,9,8]]
box_sort = sorted(box)
print(box_sort)
#[[1, 1, 8], [5, 9, 8], [8, 6, 4]]
box_sort = sorted(box, key=lambda box_i:(box_i[2], box_i[0], box_i[1]))
print(box_sort)
#[[8, 6, 4], [1, 1, 8], [5, 9, 8]]
Tu peux le faire. Le résultat changera car la priorité lors du tri est triée dans l'ordre d'écriture. Il y a un sujet similaire dans le titre ci-dessous, alors veuillez le voir également. Je vais omettre l'explication de l'expression lambda. Références ([Python] Trier les listes multidimensionnelles par plusieurs clés)
box=[[1,1,8], [8,6,4], [5,9,8]]
Si vous avez une telle liste multidimensionnelle, vous pouvez penser comme ça. "Je veux que vous fassiez ** croissant, décroissant, croissant ** dans l'ordre du troisième nombre, du premier nombre et du deuxième nombre." Lorsque cela se produit, n'est-ce pas possible avec le titre ci-dessus? ?? je pense
qiita3.py
box = [[1,1,8], [8,6,4], [5,9,8]]
box_sort = sorted(box, key=lambda box_i:(box_i[2], box_i[0], box_i[1]))
print(box_sort)
#[[8, 6, 4], [1, 1, 8], [5, 9, 8]]
box_sort = sorted(box, key=lambda box_i:(box_i[2], -box_i[0], box_i[1]))
print(box_sort)
#[[8, 6, 4], [5, 9, 8], [1, 1, 8]]
En ajoutant «-» de cette manière, la valeur est multipliée par «-1», donc plus la valeur est grande, plus elle devient petite. Vous pouvez l'utiliser dans l'ordre décroissant et croissant. Pour le problème de ABC128_B, je pense que ce sera un bon exemple à étudier si vous le résolvez en utilisant cette expression lambda.
Après avoir créé un type de dictionnaire à l'aide de Counter, etc., je me souviens avoir eu du mal à traiter ce type de dictionnaire, donc je vais l'écrire facilement.
keys ()
: Seule la clé de chaque élément peut être récupérée.
values ()
: Seules les valeurs de chaque élément peuvent être récupérées.
ʻItems () `: La clé et la valeur de chaque élément peuvent être récupérées.
Il est utilisé lors du retrait en utilisant ces trois ou en tournant avec pour.
Références (Dictionnaire Python (dict) pour le traitement en boucle (clés, valeurs, éléments) )
Comme c'était la première fois, j'ai utilisé un langage poli, mais je pense que ce sera bâclé la prochaine fois. Puisqu'il s'agit de mon premier message, veuillez me contacter si vous avez des informations incorrectes ou de mauvaises manières. Veuillez noter que le mémo est également significatif.
Il y a eu une erreur dans le contenu de strip (), il s'est avéré qu'il n'est pas nécessaire d'utiliser strip () car l'erreur ne se produit pas réellement là où la description précédente indique qu'une erreur se produit. Par conséquent, la description a été supprimée. Diffusion d'informations incertaines Nous sommes désolés.
Recommended Posts