首页 > 解决方案 > 如何计算嵌套列表中两个项目的出现次数

问题描述

我有一个嵌套列表

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

我如何计算 a & b 出现在嵌套列表中的次数?

在这种情况下,答案应为 2 次。

ps 这是我第一次发帖,谢谢大家的帮助。

标签: pythoncountnestedconditional-statements

解决方案


您可以测试是否包含在列表中

'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 将Trueas1Falseas 视为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

推荐阅读