python 集合,循环,判断,综合练习

python 集合与循环,判断综合

示例:

复制"""
定义字典,具有属性账号id,书名name、作者author 和价格price
1)要求账户属性是int型,名称是String型,作者是String型,价格是double,
2)要求定义一个图书馆集合,用于保存多本图书
3)在图书馆集合中新增图书,删除图书,修改图书信息
4)遍历查看所有添加过的图书
5)查询所有图书的平均价格、最高价格、最低价格
查询作者相同的图书的平均价格
"""

dct1 = {"id": 1, "name": "GoldBottleShade", "author": "陈寿", "price": 26.5}
dct2 = {"id": 2, "name": "sangozhi", "author": "陈寿", "price": 32.5}
dct3 = {"id": 3, "name": "ThreeWomen,HundredAndFiveMan", "author": "曹雪芹", "price": 33.5}
dct4 = {"id": 4, "name": "RedBuildingDream", "author": "曹雪芹", "price": 31}
dct5 = {"id": 5, "name": "WestTravelStory", "author": "吴承恩", "price": 28.5}

lst = [dct1, dct2, dct3, dct4, dct5]
print(lst)

lst.append({"id": 6, "name": "StroyOfGhost", "author": "蒲松龄", "price": 27.0})
print(lst)

lst.pop(4)
print(lst)

lst[-1]["id"] = 5
print(lst)

for i in range(len(lst)):
    for k, v in lst[i].items():
        print(k, v)
    print()

sumPrice = 0.0
maxPrice = 0.0
minPrice = 100.0
maxName = ""
minName = ""
maxAuthor = ""
minAuthor = ""

for x in lst:
    sumPrice += x["price"]
    if maxPrice < x["price"]:
        maxPrice = x["price"]
        maxName = x["name"]
        maxAuthor = x["author"]

    if minPrice > x["price"]:
        minPrice = x["price"]
        minName = x["name"]
        minAuthor = x["author"]
avg = sumPrice / len(lst)
print(avg)
print(maxPrice, maxAuthor, maxName)
print(minPrice, minAuthor, minName)

# set类型 可以去重
st = set()
# 从该字典向后比较,遇到名称相同的,把价格加起来,最后求平均
for x in range(len(lst)):
    name = lst[x]["author"]
    authorPrice = lst[x]["price"]
    authorCnt = 1
    for y in range(len(lst)):
        if name == lst[y]["author"] and x != y:  # 同一个作者
            authorPrice += lst[y]["price"]
            authorCnt += 1
    else:
        # print(name,authorPrice/authorCnt)
        rst = name + str(authorPrice / authorCnt)
        st.add(rst)
print(st)

示例2:

复制"""
建立一个列表中,元素是n个字典

lst = [{"name": "zhangsan", "price": 100.5}, {"name": "zhangsan", "price": 105.5},
       {"name": "zhangsan", "price": 85.5}, {"name": "zhangsan", "price": 745},
       {"name": "zhangsan", "price": 102}, {"name": "zhangsan", "price": 215},
       {"name": "lisi", "price": 253.2}, {"name": "lisi", "price": 25.8},
       {"name": "lisi", "price": 85}, {"name": "lisi", "price": 96},
       {"name": "lisi", "price": 79.5}, {"name": "wangwu", "price": 122.3},
       {"name": "wangwu", "price": 135.5}, {"name": "wangwu", "price": 122.3}]
1)计算每个消费者消费的条数
2)计算每个消费者消费的总金额
3)计算每个消费者消费的平均金额
4)计算所有消费者的总金额
5)计算所有消费者的平均金额
"""

lst = [{"name": "zhangsan", "price": 100.5}, {"name": "zhangsan", "price": 105.5},
       {"name": "zhangsan", "price": 85.5}, {"name": "zhangsan", "price": 745},
       {"name": "zhangsan", "price": 102}, {"name": "zhangsan", "price": 215},
       {"name": "lisi", "price": 253.2}, {"name": "lisi", "price": 25.8},
       {"name": "lisi", "price": 85}, {"name": "lisi", "price": 96},
       {"name": "lisi", "price": 79.5}, {"name": "wangwu", "price": 122.3},
       {"name": "wangwu", "price": 135.5}, {"name": "wangwu", "price": 122.3}]

result1 = set()
result2 = set()
result3 = set()

countPrice = 0
lst2 = []

for x in range(len(lst)):
    priceCNT = lst[x]["price"]
    a = 1
    Persion = lst[x]["name"]
    countPrice += lst[x]["price"]
    lst2.append(lst[x]["price"])
    for y in range(len(lst)):
        if Persion == lst[y]["name"] and x != y:
            a += 1
            priceCNT += lst[y]["price"]

    result1.add((Persion, a))
    result2.add((Persion, priceCNT))
    result3.add((Persion, priceCNT / a))

print(result1)
print(result2)
print(result3)

print(lst2)
print(countPrice, countPrice / len(result1))
posted @   知己一语  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示