【发布时间】:2022-01-10 13:27:50
【问题描述】:
我有一个list 的dict 如下:
objList = [{
'Name': 'keyboard',
'objectId': [0, 1],
'StartTime': '2022-01-10T13:18:17.098119',
'IsCompleted': False,
'MetaData': [{
'Count': 2
}]
}, {
'Name': 'smallObjects',
'objectId': [2, 3],
'StartTime': '2022-01-10T13:18:33.950507',
'IsCompleted': False,
'MetaData': [{
'Count': 2
}]
}]
和元组列表:
objectsCounter = [('keyboard', 2), ('smallObjects', 4)]
我必须编写一个 python 代码,如果大于或等于 objectsCounter 中的计数,我必须检查 MetaData 是否来自 dict(对于键盘和 smallObjects)objList。如果是,那么我必须将IsCompleted 设置为True,否则设置False。为此,我编写了下面的代码,并且工作正常
for obj1 in objList:
for obj2 in objectsCounter:
if obj2[0] == obj1['Name']:
if obj2[1] >= obj1['MetaData'][0]['Count']:
obj1['IsCompleted'] = True
break
但是因为我使用了很多for和if,我觉得必须有更好的方法来做这个比较。谁能帮我优化上面的代码或者上面的代码看起来不错。谢谢
【问题讨论】:
-
如果你使用
objectsCounter = {'keyboard': 2, 'smallObjects': 4}会更好。
标签: python python-3.x list dictionary tuples