在函数中获取带有元组解包的列表

问题描述

我有一个接受不同输入的给定函数(示例):

def myfunction(x,y,z):
    a = x,z
    return a

然后,这个 for 循环:

tripples = [('a','b','c'),('d','e','f'),('g','h','i'),('j','k','m')]
for tripple in tripples:
    lst.append(myfunction(*tripple))
lst

工作方式如下:

[('a','m')]

我想为 i in range(n) 运行它并获取列表列表作为输出

for i in range(3):
    for tripple in tripples:
        lst_lst.append(myfunction(*tripple))
lst_lst

输出

[('a','m'),('a','m')]

所需的输出

[[('a','m')],[('a','m')]]

如果有帮助,请提供完整代码

def myfunction(x,z
    return a

lst = []
lst_lst = []
tripples = [('a','m')]
for tripple in tripples:
    lst.append(myfunction(*tripple))
for i in range(3):
    for tripple in tripples:
        lst_lst.append(myfunction(*tripple))
lst_lst

解决方法

def myfunction(x,y,z):
    a = x,z
    return a

lst = []
tripples = [('a','b','c'),('d','e','f'),('g','h','i'),('j','k','m')]

for i in range(3):
    lst_lst = []
    for tripple in tripples:
        lst_lst.append(myfunction(*tripple))

    lst.append(lst_lst)

print(lst)

,

您需要使用一个临时列表,该列表保存一个循环的结果,然后将这些结果添加到最终列表中,并在下一个循环中初始化自身,然后再次保存下一个三元组的结果

def myfunction(x,z
    return a

lst = []
lst_lst = []
tripples = [('a','m')]
for tripple in tripples:
    lst.append(myfunction(*tripple))
for i in range(3):
    tmp =[]
    for tripple in tripples:
        tmp.append(myfunction(*tripple))
    lst_lst.append(tmp)