Python - 打印所有子列表中的公共元素


Python 语言主要由不同的数据结构组成,其中列表数据结构是最常用的。列表可以保存不同数据类型的元素,并且一旦赋值,就不能更改。列表甚至可以在方括号“[]”内包含其他列表。当定义两个列表在某些平台上工作时,它们之间可能存在某些关系,并且使用此代码,Python 程序可以实现此功能。

打印子列表中的公共元素

假设一个包含 10 个元素的列表,它也可以表示为子列表的形式,例如一个子列表包含 3 个元素,另一个子列表包含剩余的 7 个元素。

语法

list1 = [[1, 2, 3], [4, 5, 6, 7, 8, 9, 10]] 

基本语法包含列表数据结构以及子列表。

方法

方法 1 - 使用递归函数

方法 2 - 使用 reduce 函数

方法 3 - 使用迭代方法

方法 1:使用递归函数打印所有子列表中公共元素的 Python 程序

借助递归函数打印列表子列表中的公共元素,该函数自身递归调用。

算法

  • 步骤 1 - 创建函数 common_elements()。

  • 步骤 2 - 当列表的长度等于 1 时,它设置列表的第一个元素。

  • 步骤 3 - 否则,它设置交集函数以使用切片方法匹配子列表以查找公共元素。

  • 步骤 3 - 它返回包含公共元素的语句。

示例

#function is defined with a list argument
def common_elements(list1):
	if len(list1) == 1:
		return set(list1[0])
	else:
		return set(list1[0]).intersection(common_elements(list1[1:]))
#initializing the sublist inside the list data structure
list1 = [[2,3,4,5], [2,5], [2,10,5], [2,8,5,6], [2,10,9,5]]
common_elements = common_elements(list1)
#the length of the list should be greater than 0
if len(common_elements)>0:
	print("The common elements in the given sublists is:",common_elements)
else:
	print("The given list does not contain common elements! ")

输出

The common elements in the given sublist is: {2, 5}

方法 2:使用 reduce 函数打印所有子列表中公共元素的 Python 程序

在无需任何复杂步骤即可打印公共元素的方法中,导入 functools 模块以使用 reduce 函数。

算法

  • 步骤 1 - 导入所需的模块。

  • 步骤 2 - 使用子列表初始化列表数据结构,以查找它们之间的公共元素。

  • 步骤 3 - 此问题的核心功能由 reduce 和交集函数实现。

  • 步骤 4 - map 函数简单地映射元素并将每个子列表转换为集合。

  • 步骤 5 - 根据定义的输入,print 语句将返回子列表中的公共元素。

示例

#importing the module
from functools import reduce
#initializing the sublist inside the list data structure
list1 = [[2,3,4,5], [2,5], [2,10,5], [2,8,5,6], [2,10,9,5]]
#with the help of the intersection function to match the elements among sublists
common_elements = reduce(set.intersection,map(set,list1))
#the length of the list should be greater than 0
if len(common_elements)>0:
	print("The common elements in the given sublists is:",common_elements)
else:
	print("The given list does not contain common elements! ")

输出

The common elements in the given sublist is: {2, 5}

方法 3:使用 for 循环迭代方法打印公共元素的 Python 程序

遍历列表使输出打印子列表之间所有可能的公共元素。

算法

  • 步骤 1 - 创建一个带有一个列表参数的函数。

  • 步骤 2 - 然后创建一个空集,并将数组的第一个元素作为 list1[0]。

  • 步骤 3 - 使用 for 循环进行迭代。

  • 步骤 4 - 验证条件,即长度是否大于零。

  • 步骤 5 - 调用函数 common_element,并打印输出语句。

示例

#defining the function with one list argument
def common_element(list1):
#creating an empty set and taking the first element of the array
	reference_set=set(list1[0])
#for is used to iterate through the given list
	for num in range(1,len(list1)):
#Adding the common element from the list to the created set
		fresh_set=set(tuple(list1[num]))
		reference_set&=fresh_set
#To check whether the length of the list greater than 0
	if len(reference_set) > 0:
		print("The common elements in the given sublists is:",reference_set)
	else:
		print("The given list does not contain common elements! ")
#initializing the list of sublists 
list1 = [[11,3,12,5], [12,11], [12,11,5], [12,11,5,6], [12,11,9,5]]
#calling the function to print the common elements
common_element(list1)

输出

The common elements in the given sublist is: {11, 12}

结论

要查找子列表中的公共元素,应该了解子列表是如何分配的以及其基本结构。列表包含在方括号内由公共元素分隔的元素。解释了使用模块、递归函数和简单的迭代方法打印列表子列表中公共元素的方法。

更新于:2023-08-29

241 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告