【发布时间】:2022-01-10 09:16:46
【问题描述】:
假设我有一个 python 字典,tDosDict,就像
{('M1', 'P1'): 6.0,
('M1', 'P2'): 10.0,
('M1', 'P3'): 4.0,
('M2', 'P1'): 7.0,
('M2', 'P2'): 6.0,
('M2', 'P3'): 5.0}
我正在做一些操作说,
valMin = min(tDosDict.values())
jobsR = [key for key in tDosDict if tDosDict[key] == valMin]
所以我发现 jobsR 为 ('M1', 'P3')。现在我想从 tDosDict 中删除出现'P3' 的所有键。所以我更新的密钥将是
{('M1', 'P1'): 6.0,
('M1', 'P2'): 10.0,
('M2', 'P1'): 7.0,
('M2', 'P2'): 6.0,}
我将再次进行相同的操作来删除键。我尝试了以下方式,但它不起作用
for key, value in tDosDict.items():
if jobsR[0][1] in key[1]:
tDosDict.pop(jobsR[0][1], None)
请帮助我。此外,我必须将其推入循环以迭代该过程。
【问题讨论】:
-
不要从
dict中删除,而是使用您想要保留的元素创建新的dict。当您创建jobsR时,您可以使用!=而不是==并且您将拥有没有元素的tDosDict。
标签: python python-3.x dictionary