假设我有一个设备列表,我需要检查它们的状态,然后脚本才能继续。简单地说,它可以是这样的:
devices = {
'dev1': {'ready':False, ...},
'dev2': {'ready':False, ...},
'dev3': {'ready':False, ...}
}
while /exists device with 'ready' == False/:
... some code scanning for devices ...
if /device ready/:
devices[devX]['ready'] = True
我不明白while语句中的条件应该是什么样子。你知道吗
我找到的最接近的解决方案是:
len([d for d in devices if d['ready'] == True]) > 0
但它给了我TypeError:字符串索引必须是整数,而不是str
你能给个建议吗?你知道吗
问题是
for d in devices
只返回dict的键在代码中,} 迭代这些值。你知道吗
d
遍历设备中的每个键(而不是每个值)。这就是d['ready']
不起作用的原因:d
是一个字符串,就像'dev1'
。可以使用^{如果要检查} :
devices
dict中的任何值是否已就绪,可以使用^{如果要检查它们是否都准备好了,可以使用^{} :
相关问题 更多 >
编程相关推荐