在python中将列表字典传递给zip函数

在python中将列表字典传递给zip函数,python,list,dictionary,zip,Python,List,Dictionary,Zip,我有一个字典,它以list\u hostname的形式对列表进行分组,其大小可以根据主机的数量而变化 我想将这些列表与字典中没有的另一个列表list\u timestamp一起压缩,如下所示: zip(列出时间戳、列出主机名1、列出主机名2等) 例如: { list_hostname1: [1, 6, 7], list_hostname2: [4, 2, 8], list_hostname3: [3, 5, 0] } list_timestamp = ['2019-12-31',

我有一个字典,它以
list\u hostname
的形式对列表进行分组,其大小可以根据主机的数量而变化

我想将这些列表与字典中没有的另一个列表
list\u timestamp
一起压缩,如下所示:

zip(列出时间戳、列出主机名1、列出主机名2等)

例如:

{
  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']
我想这样调用zip函数:

zip(列出时间戳、列出主机名1、列出主机名2、列出主机名3)

结果是:

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

但是我的字典中的列表数量可能会有所不同,因此我不能总是假设我正在向zip函数传递4个参数

你知道怎么做吗?谢谢

您可以使用以下功能执行此操作:

hostnames = {
  "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']

for element in zip(list_timestamp, *hostnames.values()):
    print(element)
其中给出了输出:

('2019-12-31', 1, 4, 3)
('2020-05-21', 6, 2, 5)
('2020-06-01', 7, 8, 0)
请注意,字典不强制排序,因此
list\u hostname1
可能并不总是在元组的第二个元素中,但我不知道您的用例是否需要它。

您可以使用以下函数来完成此操作:

hostnames = {
  "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']

for element in zip(list_timestamp, *hostnames.values()):
    print(element)
其中给出了输出:

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

请注意,字典不强制排序,因此
list\u hostname1
可能并不总是在元组的第二个元素中,但我不知道您的用例是否需要它。

我不清楚您在寻找什么。您是否可以添加一个简短的示例,说明您想要的输出是什么,以及您当前得到的是什么。@Xorn很抱歉,我在我的帖子中添加了一个示例。您如何定义dict中项目的顺序?@Thierrylahuille项目是从给定的主机及其数据列表中添加的,所以订单是任意的,我不清楚你在找什么。您可以添加一个简短的示例,说明您想要的输出是什么,以及您当前得到的是什么。@Xorn很抱歉,我在我的帖子中添加了一个示例。您如何定义dict中项目的顺序?@Thierrylahuille项目是从给定的主机及其数据列表中添加的,因此顺序是任意的