python - python更新列表中字典的每个键值
问题描述
我在列表中有一个字典,我正在尝试迭代列表并更新字典键,每隔 10 秒更新一次值。
例子:
list = [{"id": 3, "status": "pending"}, {"id": 4, "status": "pending"}, {"id": 2, "status": "pending"}]
在某种情况下,我有另一个global_status = executing or blocked or completed
基于global_status的变量
if (global_status == executing ):
output : [{"id": 3, "status": "routing"}, {"id": 4, "status": "pending"}, {"id": 2, "status": "pending"}]
wait for 10 seconds
output : [{"id": 3, "status": "completed"}, {"id": 4, "status": "routing"}, {"id": 2, "status": "pending"}]
wait for 10 seconds
output : [{"id": 3, "status": "completed"}, {"id": 4, "status": "completed"}, {"id": 2, "status": "completed"}]
在这里,我正在遍历列表,等待 10 秒。基于global_status
,更新键,每个字典的值以顺序的方式分开。
解决方案
我为您的代码做了两个修复。
第一:你必须有固定的模式才能使用 for 循环。我为你做了一个示例模式。
routing pending pending
completed pending pending
completed routing pending
completed completed pending
completed completed routing
completed completed completed
第二:您必须使用两个 for 循环来更改每个字典中的每个“状态”,否则它将更改所有这些状态。
import time
List = [{"id": 3, "status": "pending"}, {"id": 4, "status": "pending"}, {"id": 2,
"status": "pending"}]
count = ['routing', 'completed'] # this is for your status
for i in List:
for j in range(len(i)):
i['status'] = count[j]
print(List)
time.sleep(10)
推荐阅读
- c++ - 当我使用整数编码读取 mp3 时,libmpg123 强制浮点输出
- python - 为 contextvars.Context 提供一个 ContextManager
- reactjs - 使用参数 (computedFn) 和 TypeScript 计算的 Mobx - 这是什么?
- mysql - SQL Count 每次行等于列
- visual-studio-code - 如何更改 VSCode 中的“范围”指示符?
- java - 如何在适配器上制作 2 个数组列表,以适应一个 API?
- c++ - 在 C++ 中跨越动态分配的二维数组时的侵入值/地址
- jquery - JQuery 文档就绪效率
- excel - 从字符串中提取 Excel VBA 文件名
- python - 在嵌入 C++ 程序的 python 脚本中使用 matplotlib 时出错