python入门之字典使用作业

"""
选择策略:根据自己需求,结合优缺点,综合考虑(两害相权取其轻)
字典:
优点:
1.根据键获取值,所以读取速度快;
2.代码可读性相对列表更高(根据键获取与根据索引获取).
缺点:
1.内存占用大;
2.获取值只能根据键,不灵活.
列表:
优点:
1.根据索引/切片,获取元素更灵活;
2.相比字典占用内存更小.
缺点:
1.通过索引获取,如果信息较多,可读性不高.
"""

 

 

# 作业1:
# 在控制台中录入多个人的多个多个喜好。输入空字符停止
# 例如:请输入姓名
# 请输入第1个喜好
# 请输入第2个喜好
# 请输入第3个喜好
# ...
# 请输入姓名:
# ...
# 最后在控制台打印所有人的所有喜好
"""
    思路1:
        [
        {"无忌":[赵敏,周芷若,小昭]}
        ]
"""
dict_person_bobby = []
while True:
    name = input("请输入姓名:")
    if name == "":
        break
    dict_person = {name: []}
    dict_person_bobby.append(dict_person)
    while True:
        bobby = input("请输入喜好:")
        if name == "":
            break
        dict_person[name].append(bobby)

 

"""
    思路2:
        {
        "无忌":[赵敏,周芷若,小昭]
        }
"""
dict_person_bobby = {}
while True:
    name = input("请输入姓名:")
    if name == "":
        break
    dict_person_bobby[name] = []
    while True:
        bobby = input("请输入喜好:")
        if name == "":
            break
        dict_person_bobby[name].append(bobby)

for key, value in dict_person_bobby.items():
    print("%s喜欢:" % name)
    for item in bobby:
        print(item)

# 作业2:
# 将1970年到2050年中的闰年,存入列表
# 传统模式:
list_resule = []
for item in range(1970, 2051):
    if item % 4 == 0 and item % 100 != 0 or item % 400 == 0:
        list_resule.append(item)
print(list_resule)

 

# 列表推导式:
list_resule = [item for item in range(1970, 2051) if item % 4 == 0 and item % 100 != 0 or item % 400 == 0]
print(list_resule)

# 作业3:
# 存储全国各个城市的景区与美食(不用录入),在控制台中显示出来。
# 北京:
# 景区:故宫,天安门,天坛
# 美食:烤鸭,炸酱面,豆汁,卤煮
# 四川:
# 景区:九寨沟,峨眉山,春熙路
# 美食:火锅,串串香,兔头
# 思路:
# 北京:
# ["故宫", "天安门", "天坛"]
# ["烤鸭", "炸酱面", "豆汁", "卤煮"]
# 四川:
# ["九寨沟", "峨眉山", "春熙路"]
# ["火锅", "串串香", "兔头"]

dict01 = {
    "北京":
    {
        "景区": ["故宫", "天安门", "天坛"],
        "美食": ["烤鸭", "炸酱面", "豆汁", "卤煮"]
    },
    "四川":
    {
        "景区": ["九寨沟", "峨眉山", "春熙路"],
        "美食": ["火锅", "串串香", "兔头"]
     }
}
# 需求1:获取四川的所有美食
dict01 = dict01["四川"]["美食"]
print(dict01)
# 需求2:获取所有的城市
for key in dict01:
    print(key)
# 需求3:获取所有的景区
# 思路:
# print(dict01["四川"]["景区"])
# print(dict01["北京"]["景区"])
# print(dict01["xxx"]["景区"])
list02 = []
# 遍历大字典,获取的是地区
for key in dict01:
    # 遍历小字典
    for item in dict01[key]["景区"]:
        # 地区+景区
        list02.append(key + ":" + item)
print(list02)

 

# 作业4:
# 计算一个字符串中的字符以及出现的次数,
# 例如:
# 逐一判断字符出现的次数
# abcdefce
# a 1, b 1, c 2, d 1, e 2, f 1
dict_result = {}
str_target = "abcdefce"
for item in str_target:
    if item not in dict_result:
        dict_result[item] = 1
    else:
        dict_result[item] += 1
print(dict_result)

 

posted @ 2023-02-10 08:28  黎小菜  阅读(152)  评论(0)    收藏  举报