Lorsque j'ai essayé de prendre la somme logique de List lors de la création d'une matrice de caractéristiques pour un modèle statistique, j'ai eu beaucoup de problèmes, alors je vais l'écrire.
Si vous n'écrivez que le résultat en premier, vous pouvez écrire comme suit
>>> list1 = [1, 1, 0, 0]
>>> list2 = [1, 0, 1, 0]
>>>
>>> #Somme logique
>>> [max(t) for t in zip(list1, list2)]
[1, 1, 1, 0]
>>>
>>> #ET logique
>>> [min(t) for t in zip(list1, list2)]
[1, 0, 0, 0]
La méthode ci-dessus utilise la fonction zip. La fonction zip exploite plusieurs listes pour chaque position d'index.
>>> list1 = [1, 1, 0, 0]
>>> list2 = [1, 0, 1, 0]
>>> zip(list1, list2)
[(1, 1), (1, 0), (0, 1), (0, 0)]
>>>
>>> #Peut être créé avec 3 listes ou plus
>>> zip(['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j', 'k', 'l'])
[('a', 'e', 'i'), ('b', 'f', 'j'), ('c', 'g', 'k'), ('d', 'h', 'l')]
>>>
>>> #Si des listes de différentes longueurs sont mélangées, seule la plus courte longueur de liste peut être créée.
>>> zip(['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h'], ['i', 'j'])
[('a', 'e', 'i'), ('b', 'f', 'j')]
Recommended Posts