首页 > 解决方案 > 如何仅在更新所有项目后打印字典键值对?

问题描述

我有一个工作 ID 列表,其中包含数万个称为“结果”的项目

我需要遍历这个列表获取每个作业的特定数据,我需要将这些变量添加到字典中,然后在字典更新完成并按键排序后打印键值对

这是代码的缩短版本

jobs_dict = {}
for job_index in result:
    application_name = get_app_name(id)
    job_content = get_job_content(id)
    job_duration = get_job_duration(id)
    if  job_duration not not in jobs_dict.keys():
        jobs_dict.update( {job_duration : [job_content,application_name]} )
        for key, value in sorted(composite_prob_dict.items()):
            print(key, value)
        

我的问题是我需要打印按键排序的键值对,但我只想在所有键值对都添加到字典后打印键值对,因为我需要打印按键排序的键值对

如果我正在打印键值对,我在更新过程中看到键,我想在所有项目都更新后打印整个字典,按键排序

这是几行脚本输出当然这只是第一行,因为键值对被添加到字典中

(100.78492568380443, ['204181', '435882'])
------------------------------------------------------------------
(81.872401187661254, ['204183', '435884'])
------------------------------------------------------------------
(100.78492568380443, ['204181', '435882'])
------------------------------------------------------------------
(81.872401187661254, ['204183', '435884'])
------------------------------------------------------------------
(100.78492568380443, ['204181', '435882'])
------------------------------------------------------------------
(135.48969627632511, ['204184', '435885'])

当我打印键值对时,我想为键值对获取一个元组一次

并按键排序,即:

(81.872401187661254, ['204183', '435884'])
------------------------------------------------------------------
(100.78492568380443, ['204181', '435882'])
------------------------------------------------------------------
(135.48969627632511, ['204184', '435885'])

简而言之,只有在添加了所有项目并按键排序后,打印字典键值对的方法是什么?没有重复和排序?

标签: python

解决方案


拿这段代码:

    for key, value in sorted(composite_prob_dict.items()):
        print(key, value)

并取消缩进,以便for与代码中的第一个对齐for。目前它是缩进的,以便将其放入循环中,因此每次更新时都会打印。


推荐阅读