牧师403 2022-02-09 16:03 采纳率: 75%
浏览 59
已结题

#python 列表中嵌套字典,怎么才能打印出value值相同的字典

问题遇到的现象和发生背景

想取出两本平凡的世界,但是用for循环遍历只能取出一个,并且想要取出刘慈欣的两本书

问题相关代码,请勿粘贴截图
    print('**************图书管理系统**************')
library = [{'name':'三体','author':'刘慈欣','price':24,'number':5},
           {'name':'流浪地球','author':'刘慈欣','price':26,'number':5}
    ,{'name':'平凡的世界','author':'路遥','price':108,'number':5},
           {'name':'平凡的世界','author':'鲁瑶','price':108,'number':5}
    ,{'name':'活着','author':'余华','price':20,'number':5}]
name_list = []
author_list = []
for i in library:
    name_list.append(i.get('name'))
    author_list.append(i.get('author'))


print(name_list)
print(author_list)
while 1:
    print('1.借书\n2.还书\n3.查询\n4.书库\n5.退出')
    choice = int(input('请选择功能:'))

    if choice == 1:
        i_name = input('请输入所要借阅的书:')
        n_number = name_list.count(i_name)
        for i in range(0,n_number):
            for book in library:
                if book.get('name') == i_name:
                    print('该书的相关信息为:\n书名:{}\t作者:{}\t价格:{}元\t库存量:{}本'.format(book.get('name'), book.get('author'), book.get('price'),book.get('number')))
                    break
            else:
                print('书库中暂未收录该书')


运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

想要实现按照书名取书和按照作者名取书,并且全部取出

  • 写回答

6条回答 默认 最新

  • LYSnowy 2022-02-09 16:08
    关注

    那就把你的代码中if分支的break去掉呀

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月9日

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件