Python中如何遍历包含命名列表的字典?
问题原因
直接遍历Python字典时(如for Type in Objects),默认只会遍历字典的键(即"Enemies"、"Walls"这类字符串)。内层循环for Object in Type会将字符串视为可迭代对象,逐个打印字符,这就是问题所在。
解决方法
以下是几种正确的遍历方式:
方式1:通过键获取对应列表遍历
先遍历字典的键,再用键取出对应的列表进行遍历:
Objects = { "Enemies": ["Enemy1", "Enemy2", "Enemy3"], "Walls": ["Wall1", "Wall2", "Wall3"] } for type_key in Objects: obj_list = Objects[type_key] for obj in obj_list: print(obj)
方式2:直接遍历字典的列表值
使用Objects.values()直接获取所有列表值,跳过键的处理:
Objects = { "Enemies": ["Enemy1", "Enemy2", "Enemy3"], "Walls": ["Wall1", "Wall2", "Wall3"] } for obj_list in Objects.values(): for obj in obj_list: print(obj)
方式3:同时获取类型名称与对应列表
如果需要同时输出类型名称和内部元素,用Objects.items()获取键值对:
Objects = { "Enemies": ["Enemy1", "Enemy2", "Enemy3"], "Walls": ["Wall1", "Wall2", "Wall3"] } for type_key, obj_list in Objects.items(): print(f"当前类型: {type_key}") for obj in obj_list: print(f" - {obj}")
内容的提问来源于stack exchange,提问作者Bram Venhorst
相关产品推荐
相关产品推荐

