Сравните два логических списка, используя Python - PullRequest
0 голосов
/ 09 мая 2019
is_it_equal_func_1 = lambda x:x in list1
is_it_equal_list_2 = map(is_it_equal_func_1, list2)
print(list(is_it_equal_list_2))
# prints [True, True, True, True, True]

is_it_equal_func_3 = lambda y:y in list3
is_it_equal_list_4 = map(is_it_equal_func_3, list1)
print(list(is_it_equal_list_4))
# prints [True, True, True, True, True]

Как сравнить каждое логическое значение, если я получаю False в одном из списков?

Пробовал:

is_it_equal_func_5 = lambda y:y in str(list(is_it_equal_list_2))
is_it_equal_func_6 = map(is_it_equal_func_5, list(is_it_equal_list_4))
print(list(is_it_equal_func_6))
# prints [True, True]
# I want [True, True, True, True, True]

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Используйте метод ниже, чтобы сравнить два списка и получить логический список результатов. Ответ ниже будет работать, даже если два списка не имеют одинакового размера. Используйте itertools.zip_longest для Python 3.x

import itertools

alist = [1,2,3,4]
blist = [3,2,5]

compare_list = [(a == b) for a,b in itertools.izip_longest(alist, blist)]

print compare_list

Выход:

[False, True, False, False]
0 голосов
/ 09 мая 2019

Вы ищете 'zip':

results = [(v1 == v2) for v1,v2 in zip(list1, list2)]
print(results)

(непроверенные)

...