使用 Python 将集合拆分为集合列表
在这篇文章中,我们将学习如何在 Python 中将一个集合拆分为一个集合列表。
假设我们已经获取了一个输入集合。我们现在将使用下面提到的方法将这个输入集合逐元素拆分为一个集合列表。
使用的方法
以下是完成此任务所使用的各种方法 -
使用 For 循环和 append()、add() 函数
使用 Python map() 和 lambda 函数
使用列表推导式
方法 1:使用 For 循环和 append()、add() 函数
算法(步骤)
以下是执行所需任务应遵循的算法/步骤。 -
创建一个函数listOfSets(),通过接受输入集合作为参数,将输入集合逐元素拆分为一个集合列表。
创建一个空列表,用于存储生成的集合列表。
使用for 循环遍历输入集合的每个元素。
使用set()函数创建一个空集合。
使用add()函数将输入集合的当前元素添加到上面创建的空集合中,并将当前元素作为参数传递给它。
使用append()函数(将元素添加到列表的末尾)将上述空集合(包含集合的一个元素)追加到输出列表中。
使用return语句返回生成的集合列表。
创建一个变量来存储输入集合。
通过将输入集合作为参数传递给它,调用上面定义的listOfSets()函数,以打印生成的集合列表。
示例
以下程序使用 for 循环和 append() 函数将输入集合拆分为一个集合列表 -
# creating a function that breaks the input set # into a list of sets element-wise by accepting the input set as an argument def listOfSets(inputSet): # creating an empty list for storing a resultant list of sets outputList = [] # traversing through each element of the set for k in inputSet: # creating an empty set using set() emptySet = set() # adding the current element of the input set to the above empty set emptySet.add(k) # appending empty set to the outputList outputList.append(emptySet) # returning the resultant list of sets return(outputList) # input set inputSet = {'hello', 'tutorialspoint', 'python'} # Printing the given set print("The given set is:", inputSet) # calling the above listOfSets() function by passing # the inputSet to it to print the resultant list of sets print("Breaking the input set into a list of sets:\n", listOfSets(inputSet))
输出
执行上述程序后,将生成以下输出 -
The given set is: {'tutorialspoint', 'python', 'hello'} Breaking the input set into a list of sets: [{'tutorialspoint'}, {'python'}, {'hello'}]
方法 2:使用 Python map() 和 Lambda 函数
Lambda 函数
Lambda 函数,通常称为“匿名函数”,与普通 Python 函数相同,只是它可以无需名称即可定义。def 关键字用于定义普通函数,而lambda关键字用于定义匿名函数。但是,它们仅限于一行表达式。它们与普通函数一样,可以接受多个参数。
语法
lambda 参数: 表达式
此函数接受任意数量的输入,但仅计算并返回一个表达式。
Lambda 函数可以在需要函数对象的地方使用。
必须记住,lambda 函数在语法上仅限于一个表达式。
Map() 函数
Python 中的 map() 函数在将指定函数应用于指定可迭代对象(如列表、元组等)的每个项目后,返回输出的 map 对象(迭代器)。
语法
map(function, iterable)
参数
函数 - map 传递指定可迭代对象每个元素的函数。
可迭代对象 - 要映射的可迭代对象。
算法(步骤)
以下是执行所需任务应遵循的算法/步骤。 -
创建一个变量来存储输入集合。
使用 lambda 函数访问集合的所有值,并使用 {} 运算符将值更改为集合。
使用 map() 函数将此条件应用于集合的所有元素。
使用 list() 函数将此集合的集合转换为集合列表。
打印生成的集合列表。
示例
以下程序使用 map() 和 lambda 函数将输入集合拆分为一个集合列表 -
# input set inputSet = {'hello', 'tutorialspoint', 'python'} # Printing the given set print("The given set is:", inputSet) # Modify every element of the set to a separate set using the {} operator. # Applying this condition to all the elements of the set using a map() # Converting this result to a list listOfSets = list(map(lambda k: {k}, inputSet)) # printing the resultant list of sets print("Breaking the input set into a list of sets:\n", listOfSets)
输出
执行上述程序后,将生成以下输出 -
The given set is: {'tutorialspoint', 'python', 'hello'} Breaking the input set into a list of sets: [{'tutorialspoint'}, {'python'}, {'hello'}]
方法 3:使用列表推导式
列表推导式
当您希望根据现有列表的值构建新列表时,列表推导式提供了一种更短/简洁的语法。
示例
以下程序使用列表推导式将输入集合拆分为一个集合列表 -
# input set inputSet = {'hello', 'tutorialspoint', 'python'} # Printing the given set print("The given set is:",inputSet) # Traversing through every element of the set and # converting it to a separate set using the {} operator listOfSets = [{i} for i in inputSet] # printing the resultant list of sets print("Breaking the input set into list of sets:\n", listOfSets)
输出
执行上述程序后,将生成以下输出 -
The given set is: {'tutorialspoint', 'python', 'hello'} Breaking the input set into a list of sets: [{'tutorialspoint'}, {'python'}, {'hello'}]
结论
在这篇文章中,我们学习了如何使用 3 种不同的方法将给定的集合拆分为一个集合列表。我们还学习了如何使用 lambda 函数将特定条件应用于可迭代元素,以及如何使用 map() 函数将此条件应用于可迭代对象的所有元素。