多个列表的单个附加项

问题描述 投票:0回答:1

任何人都知道有没有办法做这样的事情?:

def function(a, b, z):
    code
    return x, y, z

X, Y, Z = [] for i in range(3)
for a in range(rows):
    for b in range(cols):
         X.append(), Y.append(), Z.append() = function(a, b, z)

以便在每次迭代中,每个对应的值都进入其适当的列表

python list append
1个回答
0
投票

否;您必须先解压缩返回值,然后将每个值传递给适当的函数。

v1, v2, v3 = function(a, b, z)
X.append(v1)
Y.append(v2)
Z.append(v3)

顺便说一下,X, Y, Z = [] for i in range(3)不是有效的语法。只需写

X = []
Y = []
Z = []

您可能会考虑使用列表列表(或字典),而不要使用单独的名称XYZ

results = [[], [], []]
for a in range(rows):
    for b in range(cols):
        vs = function(a, b, z)
        for lst, v in zip(results, vs):
            lst.append(v)

但是只有3个列表,我认为这不会给您带来太大好处。

© www.soinside.com 2019 - 2024. All rights reserved.