如何从字典中打印连接的部分?

2024-10-01 04:55:05 发布

您现在位置:Python中文网/ 问答频道 /正文

如何打印哪些房间与“大厅”相连?我尝试的东西返回字符串错误或其他错误

kamers = {

    1 : {  "naam"  : "de Lobby" ,
           "trap"  : 2,
           "gangrechtdoor" : 3 }  ,

    2 : {  "naam"  : "de Trap" ,
           "lobby"  : 1,
           "note"  : "Terwijl je de trap oploopt hoor je in de verte Henk van Ommen schreeuwen" }  ,            

    3 : {  "naam"  : "de Gang rechtdoor" ,
           "lobby" : 1,
           "gymzaal" : 4, 
           "concergie"  : 5,
           "gangaula"  : 6 } ,

这会显示你在哪里,但正如你所见,不是哪个房间是相连的

    print("Hier ben je: " + kamers[currentKamer]["naam"])
    print("hier kan je naartoe: ")

Tags: 字符串错误denote房间printje大厅
2条回答

这是你想要的吗

kamers = {

    1: {"naam": "de Lobby",
        "trap": 2,
        "gangrechtdoor": 3},

    2: {"naam": "de Trap",
        "lobby": 1,
        "note": "Terwijl je de trap oploopt hoor je in de verte Henk van Ommen schreeuwen"},

    3: {"naam": "de Gang rechtdoor",
        "lobby": 1,
        "gymzaal": 4,
        "concergie": 5,
        "gangaula": 6}}

def find_connected_rooms(room_name, rooms):
    room_number = next(room_number for room_number, props in rooms.items() if props['naam'] == room_name)

    for room_props in rooms.values():
        if room_number in room_props.values():
            yield room_props['naam']


if __name__ == '__main__':
    for connected_room in find_connected_rooms('de Lobby', kamers):
        print(connected_room)

输出

de Trap
de Gang rechtdoor

问题不太清楚,但我假设您正在寻找的项目,其中有大厅键或任何键与1的价值

kamers[1]是lobby,“naam”是“de lobby”

所以如果里面的项目值为1(大厅的键),就可以得到

[i for i in kamers.values() if 1 in i.values()]

或者你可以检查“大厅”键是否存在

[i for i in kamers.values() if i.get('lobby',None) ]

要获得房间的名称,您可以将“i”替换为“i['naam']

[i['naam'] for i in kamers.values() if i.get('lobby',None) ]

它回来了

['de Trap', 'de Gang rechtdoor']

相关问题 更多 >