Python学习笔记————关于字典的嵌套

1.了解嵌套, 将一系列字典存储在列表中, 或将列表作为值存储在字典中叫做嵌套

NPC_0 = {
    'name': '正义的伙伴',
    'damage_value': 20,
}
NPC_1 = {
    'name': '正义本人',
    'damage_value': 250,
}
NPC_2 = {
    'name': '诚实的伙伴',
    'damage_value': 5,
}
NPCs = [NPC_0, NPC_1, NPC_2]  # 把字典存到列表中
for NPC in NPCs:
    print(NPC)
# 下面的例子是自动创建30个NPC
import random

NPCs = []  # 创建一个空的列表, 用于存放字典
teg = 1  # 对NPC编号用于区分姓名
for npc_number in range(30):
    value = random.randint(20, 30)  # 可以利用random库给NPC赋予不同的伤害值
    level = random.randint(10, 20)  # 可以利用random库给NPC赋予不同的等级
    new_NPC = {'name': f'NPC_{str(teg)}', 'damage_value': value, 'level': level, }
    NPCs.append(new_NPC)
    teg = teg + 1
for npc in NPCs[:5]:  # 打印显示五个NPC
    print(npc)


# 字典的值可以是多种类型, 可以是常量, 可以是变量, 还可以是函数返回值
# 我们还可以通过循环遍历修改字典列表里词典的元素
for npc in NPCs:  # 这里的npc存放的是字典
    if npc['damage_value'] >= 25:
        npc['location'] = 'dangerous_area'  # 如果npc的伤害值大于等于25那么把它分配到危险地区
    else:
        npc['location'] = 'safe_area'  # 如果npc的伤害值低于25那么把它分配到安全地区
for npc in NPCs[:5]:  # 此处只显示前五个NPC的字典
    print(npc)

2.在字典里存储列表, 上面是把字典存到列表中, 下面是如何把列表存到字典里

# 存储所点披萨的信息
pizza = {
    'crust': 'think',  # crust /krʌst/ n.面包皮, 馅饼的包边
    'toppings': ['mushrooms', 'extra cheese']  # 'toppings'相关的值是一个列表, 里边包含了顾客所点的配料的信息
}
# 概述所点的披萨
print(f"You ordered a {pizza['crust']}-crust pizza "
      "with the following toppings:")
for topping in pizza['toppings']:
    print("\t" + topping)

# 下面是调查大家最喜欢的编程语言的例子
favorite_languages = {
    'jen': ['python', 'ruby'],
    'sarah': ['c'],
    'edward': ['ruby', 'go'],
    'phil': ['python', 'haskell']
}
for name, languages in favorite_languages.items():  # 记得加items()
    print(f"\n{name.title()}'s favorite languages are: ")  # 变量name用于存储'键', 变量languages用于存储列表, language的类型是列表
    for language in languages:
        print(f"\t{language.title()}")

3.在字典里存储字典

users = {
    'aeinstein': {
        'first': 'albert',
        'last': 'einstein',
        'location': 'princeton',
    },  # 别忘了加','
    'mcurie': {
        'first': 'marie',
        'last': 'curie',
        'location': 'paris',
    },  # 最后一个键值对后面','可加可不加
}
for username, user_info in users.items():  # 同样是两个变量, 一个存'键'一个存'值', 不过这里的'值'仍是一个字典
    print(f"\nUsername: {username}")
    full_name = f"{user_info['first']} {user_info['last']}"
    location = user_info['location']
    print(f"\tFull name: {full_name.title()}")
    print(f"\tLocation: {location.title()}")
# 上面的字典结构都是一样的, 虽然Python并没有这样规定, 但这样遍历起来更容易

总结一下, 不论是嵌套还是在字典中存储列表还是在字典中套娃字典, 都一定要注意其格式
没了

上一篇:【研一周小结】第五周个人学习总结


下一篇:游戏的真实度