用Python将一个集合分解成一个集合的列表
在这篇文章中,我们将学习如何用 Python 将一个集合 分解成一个集合的列表。
假设我们已经有了一个输入集。现在我们将使用下面提到的方法把这个输入集合按元素分成一个集合的列表。
使用的方法
以下是用于完成这项任务的各种方法
- 使用For Loop和append()、add()函数
- 使用Python map()和lambda函数
- 使用List Comprehension
方法1:使用For Loop和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 arguments: expression
- 这个函数接受任何数量的输入,但只评估和返回一个表达式。
- lambda函数可以用在需要函数对象的地方。
- 你必须记住lambda函数在语法上只限于一个表达式。
Map() 函数
python中的map()函数在将指定的函数应用于指定的迭代器(如列表、元组等)的每一项后,返回一个map对象(迭代器)的输出。
语法
map(function, iterable)
参数
- Function – 一个函数,map将指定的迭代器的每个元素传递给它。
- Iterable – 一个要被映射的可迭代对象。
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 创建一个变量来存储一个输入集。
- 使用lambda函数访问该集合的所有值,并使用{}操作符将该值改为集合。
- 使用map()函数将这个条件映射/应用于集合的所有元素。
- 使用list()函数将这个集合转换为一个集合的列表。
- 打印结果的集合列表。
例子
# 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:使用List Comprehension
列表理解
当你希望根据现有列表的值建立一个新的列表时,列表理解提供了一个更短/更简洁的语法。
例子
下面的程序使用列表理解法将一个输入集合分解成一个集合的列表:
# 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()函数将这个条件应用于可迭代的所有元素