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

Python-将元组扩展为参数

谭绍晖
2023-03-14
问题内容

有没有办法将Python元组扩展为函数-作为实际参数?

例如,这里expand()做了魔术:

some_tuple = (1, "foo", "bar")

def myfun(number, str1, str2):
    return (number * 2, str1 + str2, str2 + str1)

myfun(expand(some_tuple)) # (2, "foobar", "barfoo")

我知道可以将其定义myfun为myfun((a, b, c)),但是当然可能会有遗留代码。谢谢


问题答案:

myfun(*tuple)不正是你要求什么。的*操作者只需解包元组(或任何可迭代),并把它们作为位置函数的自变量。有关更多信息,请参见此处。

侧问题:不要为你的标识符内建类型的名称,如使用tuplelistfileset,等等-这是可怕的做法,它会回来,咬你的时候,你最不经意的时候,所以只是进入的积极的习惯,避免隐藏带有你自己的标识符的内置名称。



 类似资料:
  • 我有以下命名元组: 然后我想要以下内容: 两个名称元组之间有重复,我如何子类ReadElement以包含一个附加字段? 然而元组是创建在那里的,那么在新语句中,如果我修改自我成为一个列表,我会失去类型信息,我该如何避免这种情况?

  • 问题内容: 我知道您不能动态扩展普通数组,但这是一种有效的方法吗? 我知道比尝试使用普通数组更好的方法,但是我想首先使用普通数组来解决这个问题。 我的愿望是,它从0 + 1(so 1)开始,在被称为new时,它的大小与相同,然后保持不变,同时再次声明,然后将其复制回新的大小。这对我来说很有意义,但我总是会遇到异常情况? 问题答案: 该方法不会更改OrigArray的值;它所做的只是在其中存储一个克

  • 问题内容: 我有一个SQL选择如下: 实际中 在这个 更复杂的选择中。是字符串(varchar)。如何扩展该sql以从中选择行, 就像 文本来自(而不是完全等于)? 问题答案: 如果您在表2的文本列中有通配符表达式,则可以这样做。 否则,您需要在查询中添加。

  • 问题内容: 创建数组时,无法更改其大小;它是固定的。好的,看起来不错,我们可以创建一个新的更大的数组并逐个复制值,这有点慢。它的技术背景是什么? 问题答案: 这个问题没有提到语言,因此我将选择基于“ C”的数组作为答案。 数组被分配为单个内存块。增长数组是有问题的,因为正确执行此操作的唯一方法是在最后增长它。为了增加大小N,在数组的末尾必须在下一个分配的地址之前至少有N个空闲字节。 要支持这种类型

  • Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)。 下面是一个类似数组的对象,Array.from将它转为真正的数组。 let arrayLike = { '0': 'a', '1': 'b', '2': 'c',

  • 我想使用部分模板专门化,以便将数组(在编译时创建)“分解”为由其值组成的参数包(以便与我在代码中定义的其他结构接口)。以下内容(我的第一次尝试)不编译 因为模板参数不得涉及模板参数。正如我所理解的,在部分模板专门化中提供非类型参数是不可能的,如果它们不是非常依赖于模板参数的话。因此,我试图通过在类型中包含值来解决这个问题: 我使用并通过,因为我使用非类型模板参数,所以需要c++2a。 在我的实际代