Ma compréhension sur les listes de filtrage avec lambda est que le filtre renverra tous les éléments de la liste qui retournent True pour la fonction lambda. Dans ce cas, le code suivant,python lambda liste filtrage avec plusieurs conditions
inputlist = []
inputlist.append(["1", "2", "3", "a"])
inputlist.append(["4", "5", "6", "b"])
inputlist.append(["1", "2", "4", "c"])
inputlist.append(["4", "5", "7", "d"])
outputlist = filter(lambda x: (x[0] != "1" and x[1] != "2" and x[2] != "3"), inputlist)
for item in outputlist: print(item)
La sortie doit être
['4', '5', '6', 'b']
['1', '2', '4', 'c']
['4', '5', '7', 'd']
Mais la sortie que je reçois est
['4', '5', '6', 'b']
['4', '5', '7', 'd']
je reçois le résultat attendu, si je l'utilise
outputlist = filter(lambda x: (x[0] != "1" or x[1] != "2" or x[2] != "3"), inputlist)
Que puis-je faire? ng idiot ici? Ou est-ce que ma compréhension n'est pas correcte?
Nous ne pouvons pas dire si votre compréhension est correcte, parce que vous ne nous avez pas dit ce que vous attendez de la fonction 'lambda'. Si vous joignez les conditions avec 'and', il ne sera pas évalué à' true', sauf si toutes les conditions sont vraies. Si vous joignez les conditions avec 'or', il évaluera' true' si seulement l'une des conditions est vraie. –
Maintenant je me sens vraiment bête! Je pense que je dois arrêter de travailler et frapper le sac. Désolé de perdre votre temps les gars. – user3300676