当前位置: 首页 > 面试题库 >

如何在Python中合并任意数量的元组?

漆雕皓轩
2023-03-14
问题内容

我有一个元组列表:

l=[(1,2,3),(4,5,6)]

该列表可以是任意长度,元组也可以。我想按它们出现的顺序将其转换成元素的列表或元组:

f=[1,2,3,4,5,6] # or (1,2,3,4,5,6)

如果在开发时知道我会得到多少个元组,我可以添加它们:

m = l[0] + l[1]  # (1,2,3,4,5,6)

但是由于直到运行时我才知道会有多少个元组,所以我无法做到这一点。我觉得有一种方法可以使用map,但我无法弄清楚。我可以遍历元组并将其添加到累加器中,但是那样会创建很多永远不会使用的中间元组。我还可以遍历元组,然后遍历元组的元素,并将它们附加到列表中。这似乎效率很低。也许有一种更简单的方法可以让我完全忘却。有什么想法吗?


问题答案:

链接它们(仅创建一个生成器,而不是保留额外的内存):

>>> from itertools import chain
>>> l = [(1,2,3),(4,5,6)]
>>> list(chain.from_iterable(l))
[1, 2, 3, 4, 5, 6]


 类似资料:
  • 问题内容: 我希望这行JavaScript: 返回类似: 但相反,它仅返回最后捕获的匹配项: 有没有办法获取所有捕获的比赛? 问题答案: 在大多数情况下,当您重复一个捕获组时,仅保留最后一个捕获。以前的任何捕获都将被覆盖。以某种形式,例如.NET,您可以获取所有中间捕获,但是Javascript并非如此。 也就是说,在Javascript中,如果您有一个带有 N个 捕获组的模式,则即使重复了其中一

  • 问题内容: 我将如何在Python中“按任意键”(或抓住菜单选项)? raw_input要求您按回车键。 Windows msvcrt具有getch()和getche()。 有使用标准库执行此操作的可移植方法吗? 问题答案:

  • 问题内容: 如果a不为空,则访问以下任意元素: 有什么更好的方法吗? 问题答案: 在Python 3上,非破坏性和迭代性地: 在Python 2上,非破坏性和迭代性地: 如果希望它在Python 2和3中都可以使用,则可以使用该包: 尽管在这一点上它还是很神秘的,但我还是更喜欢您的代码。 如果要删除任何项目,请执行以下操作: 请注意,“ first”在此处可能不是合适的术语,因为在Python <

  • 我想创建一个方法,它可以具有任意数量的参数和任何数据类型的任何方法。 为。我想动态调用以下所有方法void method1(int x,int y)void method2(int x,String y)void method3(Float x,Long y,String z) 我正在使用反射来这样做。现在我讨论了如何在调用这个动态方法的过程中向这些方法传递参数。我做了多远... 如何调用MyMe

  • 我们在vertx中使用Futures,例如: 例如,我们处理2个呼叫。 或者我有另一个代码段,可以处理任意数量的方法: 这里,我们将链接会话中的所有请求。getRequestList(),而不事先知道它们的计数。 但是<代码>的缺点。all()方法是,我们无法控制订单。 如何使用Vertx Futures链接任意数量的方法(不知道调用的确切数量)? 编辑: 官方指南谈到了顺序组合,但给出的示例有3

  • 我有一个对象列表,我试图为每个对象指定三行,我使用的"Office Open Xml库"有以下例程: 然而,它弹出一个错误,说不能合并已经合并的单元格。 所以问题是如何在Excel中合并两个以上的单元格?