如何拉链多次,但列表数量未知数?

发布于 2025-01-24 09:40:02 字数 380 浏览 0 评论 0 原文

我有多个列表,我想像以下示例中所示的那样将它们拉开:

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"], .... ) 

I have multiple lists and I want to zip them like shown in the following example :

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, ...] 

So how could I zip them without knowing the number of clients :

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风筝有风,海豚有海 2025-01-31 09:40:02

因此,您已经在 client client_names 中的一部分,因此您可以列出它们的列表:

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

现在to zip 您可以将其应用于<<<代码>*运算符到列表:

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

或如@wwii指出的那样,我们不需要获得 list consensension 首先迭代 client_names 令*迭代结果,我们可以制作一个生成器表达式:

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

So you already have the client part in client_names, so you can make a list of them:

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

Now to zip them together you can apply to * operator to the list:

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

or as @wwii points out, we don't need to get a list comprehension to iterate over client_names first and then let * iterate over the result, we can make a generator expression:

acc_clients = zip(*(d["acc_list" + client ] for client in client_names))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文