Как подсчитать количество вхождений для двух элементов во вложенном списке - PullRequest
0 голосов
/ 24 июня 2019

У меня есть вложенный список

a = [[1,'a','b'], [2,'c','d'], [3,'a','b']]

как подсчитать количество случаев, когда a & b появилось во вложенном списке?

в этом случае ответ будет 2 раза.

ps это мой первый пост, так что спасибо за помощь.

1 Ответ

0 голосов
/ 24 июня 2019

Вы можете проверить включение в список с помощью

'a' in some_list

Это будет правда или ложь. Вы можете сделать несколько тестов с помощью and (есть также некоторые другие способы, которые могут быть немного симпатичными):

'a' in some_list and 'b' in some_list

Это будет верно, если выполнены оба условия . Чтобы сделать это для всех списков в вашем списке, вы можете использовать понимание списка:

a_list = [[1,'a','b'], [2,'c','d'], [3,'a','b']]

['a' in x and 'b' in x for x in a_list]

Это вернет список логических значений, по одному для каждого элемента в вашем списке:

[True, False, True]

Когда рассматривается как число, python рассматривает True как 1 и False как 0. Это означает, что вы можете просто сложить этот список, чтобы подсчитать и найти решение в одну строку:

a_list = [[1,'a','b'], [2,'c','d'], [3,'a','b']]

sum(['a' in x and 'b' in x for x in a_list])
# 2
...