如何压缩多个但数量未知的列表?

How to zip multiple but an unknown number of lists?

我有多个列表,我想压缩它们,如下例所示:

d = {}
clients = ["client_1","client_2","client_3",...] # n number of client

# every client has a list of element :
d["acc_list" + client] = [1, 2, 3, ...] 

所以我怎么能在不知道客户端数量的情况下压缩它们呢:

acc_clients = zip(d["acc_list" + "client_0"],d["acc_list" + "client_2"],d["acc_list" + "client_3"], .... ) 

所以你已经在 client_names 中有了 client 部分,所以你可以列出它们:

client_d = [d["acc_list" + client ] for client in client_names]

现在zip他们一起你可以申请到*运算符到列表中:

acc_clients = zip(*[d["acc_list" + client ] for client in client_names])

或者正如@wwii 指出的那样,我们不需要先让 list comprehension 迭代 client_names 然后让 * 迭代结果,我们可以生成器表达式:

acc_clients = zip(*(d["acc_list" + client ] for client in client_names))