Python 将元组中的不同元素解压到 *args
Python unpack different elements in tuple into *args
var = ('3', [11, 13, 11, 11])
我想把它转换成这样:
3 11 13 11 11
这样我就可以将它传递给另一个函数
foo(*args):
...
您可以使用 iterable unpacking 来执行此操作。
您可以通过在将可迭代对象传递给函数时加上前缀 *
来解压它。
foo(int(var[0]), *var[1])
给你想要的。
我建议使用 for 循环来检查是否有任何项目是 list,tuple,dict
的实例,这是该过程的代码:
var = ('3', [11, 13, 11, 11])
types=(list,dict,tuple)
var=list(var)
num=0
for x in var:
item=var[num]
num+=1
if isinstance(item,types):
item2=item
for x in item:
var.append(x)
continue
var.remove(item2)
continue
这里是每行代码的解释:
在 types
中存储可以找到的每种可能类型的容器,这将在检查项目是否是这些 类 的实例时使用。接下来变量被转换成一个列表,因为元组是不可变的。 num
是索引(计算机从0开始计数)。 for 循环只是循环遍历每个项目,然后 if 块检查该项目是否是之前在 types
变量中提到的 类 的实例。
var = ('3', [11, 13, 11, 11])
我想把它转换成这样:
3 11 13 11 11
这样我就可以将它传递给另一个函数
foo(*args):
...
您可以使用 iterable unpacking 来执行此操作。
您可以通过在将可迭代对象传递给函数时加上前缀 *
来解压它。
foo(int(var[0]), *var[1])
给你想要的。
我建议使用 for 循环来检查是否有任何项目是 list,tuple,dict
的实例,这是该过程的代码:
var = ('3', [11, 13, 11, 11])
types=(list,dict,tuple)
var=list(var)
num=0
for x in var:
item=var[num]
num+=1
if isinstance(item,types):
item2=item
for x in item:
var.append(x)
continue
var.remove(item2)
continue
这里是每行代码的解释:
在 types
中存储可以找到的每种可能类型的容器,这将在检查项目是否是这些 类 的实例时使用。接下来变量被转换成一个列表,因为元组是不可变的。 num
是索引(计算机从0开始计数)。 for 循环只是循环遍历每个项目,然后 if 块检查该项目是否是之前在 types
变量中提到的 类 的实例。