atcoder tutorial Il y avait un problème qui devait déterminer si chaque élément de la liste était pair ou impair, donc j'avais généralement une fonction intégrée quand je pensais que ce serait facile à écrire. C'est peut-être une histoire à écrire autant, mais permettez-moi de l'utiliser car elle est préparée.
all(iterable)
Renvoie True si tous les ** éléments de l'itérable sont vrais ** (ou si l'itérable est vide).
def all(iterable):
for element in iterable:
if not element:
return False
return True
Voici ce qu'est ** itarable **.
Un objet reproductible. Un objet qui renvoie un élément à la fois. ex) Listes, tapples, dictionnaires ...
Passer ceci dans l'argument de ** iter () ** renverra ** iterator ** pour l'objet. (** iterator ** est un objet qui exprime le flux de données (en gros))
Par exemple
for i in A:
Un ici est ** itarable **. for
appelle automatiquement ** iter () ** pour créer une variable anonyme temporaire et conserver ** iterator ** pendant la boucle.
Alors essayons «tous»!
Ce qui suit est un programme qui vérifie si tous les éléments du tableau ** array ** utilisant ʻall` sont de type int. Pensez à ce à quoi il ressemble avant de regarder la sortie!
def check(array):
if all( isinstance(x, int) for x in array):
print("Tableau{}Tous les éléments de sont de type int".format(array))
else:
print("Tableau{}Certains éléments ne sont pas de type int! !!".format(array))
check([2,5,6])
check([1,4,[]])
check(["1",2,3])
check([])
check(1)
Tous les éléments du tableau [2, 5, 6] sont de type int Certains éléments du tableau [1, 4, []] ne sont pas de type int! !! Certains éléments du tableau ['1', 2, 3] ne sont pas de type int! !! Tous les éléments du tableau [] sont de type int
TypeError Traceback (most recent call last)
Omis
TypeError: 'int' object is not iterable
C'était comme prévu? ** True ** est également renvoyé pour les tableaux vides. Eh bien, bien sûr, j'ai eu une erreur disant que le cinquième n'est pas itérable. Gardez ces points à l'esprit.
any(iterable)
Ensuite, j'écrirai sur ʻany () `. Il semble qu'il n'y ait pas besoin d'explication car le contenu de ces deux fonctions sont toujours les noms des fonctions (rires)
Renvoie True si un ** élément de l'itérable est vrai **. Renvoie False si iterable est vide. Équivalent au code suivant:
def any(iterable):
for element in iterable:
if element:
return True
return False
Ce qui suit est un programme qui vérifie si un élément d'un tableau ** tableau ** utilisant ʻany` a un type int. Comme auparavant, pensez à ce à quoi il ressemblera avant de regarder la sortie!
def check(array):
if any( isinstance(x, int) for x in array):
print("Tableau{}Il y a un type int dans l'élément de! !!".format(array))
else:
print("Tableau{}Il n'y a pas de type int dans l'élément de!".format(array))
check([2,"5","6"])
check(["1","4","a"])
check([])
check([1])
L'élément du tableau [2, '5', '6'] a un type int! !! Il n'y a pas de type int dans les éléments du tableau ['1', '4', 'a']! Il n'y a pas de type int dans l'élément du tableau []! L'élément du tableau [1] a un type int! !!
comment était-ce? Le n ° 3 est particulièrement prudent. Vous pouvez voir que False
est retourné dans le cas d'un tableau vide contrairement à ʻall`. Eh bien, y a-t-il autre chose que je peux expliquer?
Qu'as-tu pensé? Je ne peux pas nier le commentaire et le sentiment qu'il n'y avait pas de demande en premier lieu, mais j'espère que cela aide. Puis cette fois par ici!
Recommended Posts