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