-1
votes

Vérifiez si aucun dans la liste imbriquée

Comment trouver un aucun dans une liste imbriquée. Lorsque j'exécute le code suivant, le bonjour n'est pas imprimé. Je ne sais pas comment repérer une personne dans la liste d'une liste. Pouvez-vous m'aider avec cette question simple.

myList = [[0,1,2],[5,None,300]]

if None in myList:

print("Hello")


4 commentaires

Je m'attendrais à ce que l'indentation soit vraiment comme celle-ci que vous obtiendriez une erreur à ce sujet si la déclaration.


Essayez-vous simplement de trouver cela ou avez-vous besoin des données manipulées d'une certaine manière?


Comme les réponses indiquent, vous devez itérer sur une liste dans votre myList - "pour la liste de la liste de myList", puis vérifiez-en aucune dans la "liste" résultante.


Merci beaucoup pour les solutions! J'utilisais la bonne indentation, mais je ne savais pas comment itération sur la liste des listes.


4 Réponses :


4
votes

Ceci est fondamentalement un cas particulier de Comment créer une liste d'appartements sur la liste des listes? ; Vous devez l'aplatiser pour effectuer le test. Dans ce cas, la meilleure approche consiste à utiliser itheroTools.chain code> pour faire l'aplativement, ce qui vous permet d'utiliser le test dans code> de test de court-circuit (il s'arrête lorsque Il trouve un Aucun code>, aucun travail n'est effectué pour les éléments suivants):

from itertools import chain

myList = [[0,1,2],[5,None,300]]

if None in chain.from_iterable(myList):
    print("Hello")


0 commentaires

4
votes

Vous pouvez utiliser n'importe quel: xxx

ou itheroTools.chain : xxx


0 commentaires

0
votes

S'il vous plaît, faites attention à l'indentation:

for inner_list in myList:
   for item in inner_list:
      if item is None:
         print('hello')


1 commentaires

it article est 0 ceci imprimera bonjour



0
votes
myList = [[0,1,2],[5,None,300]]

for x in myList:
    if None in x:
        print("Hello")
Note that this will print once for every "None" found.

0 commentaires