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))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现