对于在python中接受不确定数量的参数的函数,如何传入不确定数量的参数

2024-10-01 00:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

例如,假设我有一个要合并的集合的无限数量:

bigSet = bigSet.union(<listOfSets>)

我可以简单地将每一组折叠起来,即:

^{pr2}$

另一种选择是使用eval函数:

stringTuple = str(listOfSets)
stringTuple = stringTuple.strip("[")
stringTuple = stringTupl.strip("]")
bigSet = eval("bigSet.union(" + stringTuple + ")")

我问这个问题的原因是,在python2.6中,将多个参数传递给union(而不是在一个union列表中折叠它)优化了union,以便首先对最小的集合进行联合。因为python中的集合通常是非常大的数据集的最佳数据结构(特别是当它们需要被联合或相交时),而且似乎很常见的情况是需要传入不确定数量的集合,因此应该有一种更优的方法来实现这一点。如果没有,哪个更快:使用eval还是在集合中折叠?在


Tags: 数据函数数据结构列表数量eval原因strip
2条回答

^{cd1>}接受任意数量的集作为参数:

In [28]: x.union(set([1,2]),set([2,3]),set([3,4]))
Out[28]: set([1, 2, 3, 4])

因此,可以将集合列表与

^{pr2}$

Note the asterisk

看起来你想把集合列表扩展成函数的参数列表

^{1}$

相关问题 更多 >