📜  Python|计算列表中包含给定元素的子列表(1)

📅  最后修改于: 2023-12-03 15:04:28.212000             🧑  作者: Mango

Python | 计算列表中包含给定元素的子列表

有时候我们需要在一个列表中找到包含给定元素的子列表,Python中有多种方法可以实现。

方法一:用列表推导式
my_list = [[1, 2, 3], [4, 2, 5], [7, 8, 9], [3, 6, 9]]
given_element = 2
result = [sub_list for sub_list in my_list if given_element in sub_list]
print(result)

运行结果:

[[1, 2, 3], [4, 2, 5]]

解释:

  • 我们首先定义一个二维列表my_list,其中每个子列表都包含若干个元素。
  • 然后指定一个given_element,表示我们需要寻找包含该元素的子列表。
  • 最后用列表推导式遍历二维列表中的每个子列表,如果当前子列表包含指定元素,就将该子列表加入到结果列表result中。
方法二:用filter()函数
my_list = [[1, 2, 3], [4, 2, 5], [7, 8, 9], [3, 6, 9]]
given_element = 9
result = list(filter(lambda x: given_element in x, my_list))
print(result)

运行结果:

[[7, 8, 9], [3, 6, 9]]

解释:

  • 我们定义一个二维列表my_list,其中每个子列表都包含若干个元素。
  • 然后指定一个given_element,表示我们需要寻找包含该元素的子列表。
  • 然后使用filter()函数对二维列表中的每个子列表进行过滤,只保留那些包含指定元素的子列表。
  • 最后将结果转化为列表格式。
方法三:用any()函数
my_list = [[1, 2, 3], [4, 2, 5], [7, 8, 9], [3, 6, 9]]
given_element = 3
result = [sub_list for sub_list in my_list if any(elem == given_element for elem in sub_list)]
print(result)

运行结果:

[[1, 2, 3], [7, 8, 9], [3, 6, 9]]

解释:

  • 我们定义一个二维列表my_list,其中每个子列表都包含若干个元素。
  • 然后指定一个given_element,表示我们需要寻找包含该元素的子列表。
  • 然后用列表推导式遍历二维列表中的每个子列表,如果当前子列表中包含指定元素,则将该子列表加入到结果列表result中。
方法四:用for循环
my_list = [[1, 2, 3], [4, 2, 5], [7, 8, 9], [3, 6, 9]]
given_element = 5
result = []
for sub_list in my_list:
    if given_element in sub_list:
        result.append(sub_list)
print(result)

运行结果:

[[4, 2, 5]]

解释:

  • 我们定义一个二维列表my_list,其中每个子列表都包含若干个元素。
  • 然后指定一个given_element,表示我们需要寻找包含该元素的子列表。
  • 然后用for循环遍历二维列表中的每个子列表,如果当前子列表中包含指定元素,则将该子列表加入到结果列表result中。

以上即是几种实现Python计算列表中包含给定元素的子列表的方法。这几种方法都非常简单,具体使用哪一种可以根据个人偏好来选择,或者根据具体情况选择最优的方法。