You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将列表组成的字典传入zip函数

解决可变数量参数传入zip的问题

这问题其实用Python的参数解包就能轻松搞定,不用纠结参数数量的问题,步骤很简单:

  • 首先,你的字典里存的是所有hostname对应的列表,我们可以用host_dict.values()拿到这些列表的集合;
  • 然后用*操作符把这些列表逐个解包成zip的单独参数,再加上前面的list_timestamp就行。

示例代码

# 你的原始数据
host_dict = {'list_hostname1': [1, 6, 7], 'list_hostname2': [4, 2, 8], 'list_hostname3': [3, 5, 0]}
list_timestamp = ['2019-12-31', '2020-05-21', '2020-06-01']

# 核心操作:用*解包字典中的所有列表
zipped_result = zip(list_timestamp, *host_dict.values())

# 转换成元组查看结果(zip返回的是迭代器,直接打印看不到完整内容)
print(tuple(zipped_result))

运行后会输出你想要的结果:

(('2019-12-31', 1, 4, 3), ('2020-05-21', 6, 2, 5), ('2020-06-01', 7, 8, 0))

额外注意:列表顺序问题

如果你的Python版本是3.7及以上,字典默认是插入有序的,所以host_dict.values()的顺序会和你添加键值对的顺序一致。但如果是更早的版本(Python 3.6及以下),字典是无序的,这时候你可能需要按键的顺序来提取列表,比如:

# 按键的排序顺序获取列表
sorted_lists = [host_dict[key] for key in sorted(host_dict.keys())]
zipped_result = zip(list_timestamp, *sorted_lists)

这样就能保证传入zip的列表顺序和你预期的一致啦。

内容的提问来源于stack exchange,提问作者symbolads

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 21:07:45