通过字典和列表迭代

时间:2018-03-13 16:40:34

标签: python dictionary iteration

我有一个字典示例:

dictionary = {Bay1: [False,False,True],
        Bay2: [True,True,True],
        Bay3: [True,True,False],
        Bay4: [False,False,False] }

我要做的是通过检查每个托架(Bay1,Bay2 ...)来查看字典,看看哪个托架中的所有内容都是False。对于该示例,我希望它返回'Bay4'

其次,我希望能够通过使用循环检查每个托架中哪个False以及哪个True。换句话说,您可以想象True表示被“预订”而False表示自由或“未预订”。我希望能够检查每个托架,并以良好且易于阅读的格式将其呈现给用户。

2 个答案:

答案 0 :(得分:0)

您应该提供更多信息。

无论如何,如果我理解了您的问题,您可以在any()循环中使用all()for

# print all Bay with all False:
for key, value in mydict:
    if not any(value):
        print key

# print all Bay with at least 1 False:
for key, value in mydict:
    if not all(value):
        print key

答案 1 :(得分:0)

首先 部分

返回具有全部>>> d = {'Bay1': [False,False,True], 'Bay2': [True,True,True], 'Bay3': [True,True,False], 'Bay4': [False,False,False]} >>> ' '.join([k for k, v in d.items() if any(v) is False]) Bay4 的值的键:

True

第二 部分

为每个False计算bay(已预订)和>>> d = {'Bay1': [False,False,True], 'Bay2': [True,True,True], 'Bay3': [True,True,False], 'Bay4': [False,False,False]} >>> '\n'.join(['{}: {} booked and {} not booked'.format(k, v.count(True), v.count(False)) for k, v in d.items()]) Bay1: 1 booked and 2 not booked Bay2: 3 booked and 0 not booked Bay3: 2 booked and 1 not booked Bay4: 0 booked and 3 not booked (未预订)的数量:

var lineNumber = inboundShipmentUpdate.findSublistLineWithValue({
                sublistId: 'items',
                fieldId: 'itemid',
                value: itemID.toString()
            });