У меня есть два списка: list_a
и list_b
одинаковой длины. Однако длина является переменной, следующий пример является просто упрощением.
Значения в массивах также являются переменными, но я знаю, какие значения могут иметь место. Необязательные значения перечислены в options_a
и options_b
.
list_a = ['metro', 'metro', 'urban', 'urban', 'rural']
list_b = [1, 2, 2, 2, 3]
options_a = [1, 2, 3, 4]
options_b = ['metro', 'urban', 'suburb', 'rural']
Я хочу подсчитать вхождения option_b
-опций для каждой опции в options_a
и распечатать их в матрице:
[
[1, 0, 0, 0], #tells me that options_a=1 has the option_b='metro' exactly once
[1, 2, 0, 0], #options_a=2 has the option_b='metro'once, option_b='urban' twice
[0, 0, 0, 1], #options_a=3 has the option_b='rural' exactly once
[0, 0, 0, 0] #options_a=4 did not occur
]
Однако мой подход не работает, и я не знаю, как его исправить:
output = list(map(lambda x:
list(map(lambda y: list_a.count(y), options_b))
, options_a))
print(output)
Результат в результате:
>>>[
[2, 2, 0, 1],
[2, 2, 0, 1],
[2, 2, 0, 1],
[2, 2, 0, 1]
]