首页 > 编程语言 >python-7-求问,打印嵌套字典中的信息时,出现重复怎么解决?

python-7-求问,打印嵌套字典中的信息时,出现重复怎么解决?

时间:2024-06-09 23:59:18浏览次数:14  
标签:city python country 求问 summary 嵌套 print fact population

​​​​​​学习内容:

《python编程:从入门到实践》

知识点:字典、键值对、嵌套

#练习6-11:城市 
创建一个名为cities的字典,将三个城市名用作键。
对于每座城市,都创建一个字典,并在其中包含该城市所属的国家、
人口约数以及一个有关该城市的事实。在表示每座城市的字典中,
应包含country、population和fact等键。将每座城市的名字以及有关信息都打印出来。

PS:看我的问题请大佬们直接跳到问题部分,前面是笔记而已,感谢。

目录

​​​​​​学习内容:

《python编程:从入门到实践》

我的代码:

结果如下:

总结&问题:

我的问题是怎么去除3遍的结果,我尝试了很多了

我的代码:
cities = {
    'beijing':{
        'country':'China',
        'population':'2.2trillion',
        'fact':'中国首都,历史悠久,文化灿烂,世界文化遗产丰富'
        },
    'paris':{
        'country':'Fracnce',
        'population':'1.2trillion',
        'fact':'法国首都,四大世界级城市之一'
        },
    'Akureyri':{
        'country':'Iceland',
        'population':'fifteen thousand',
        'fact':'"北方之都",位于冰岛最北部埃亚峡湾尽头,地处北极圈边缘',
        },
    }
for city,summary in cities.items():
    print(f"\n{city}")
    for key,value in summary.items():
        print(f"{city}属于{summary['country']}")
        print(f"面积是{summary['population']}")
        print(f"这里是{summary['fact']}")
结果如下:

另一种代码写法:

主要是把要用到的值,用变量赋值 变量=的方式,赋值后打印

赋值的方法似乎更清晰。

for city,summary in cities.items():
    print(f"\n城市概述:{city}")
    for key,value in summary.items():
        country = summary['country']
        population = summary['population']
        fact = summary['fact']
        print(f"属于:{country}")
        print(f"人口是:{population}")
        print(f"定位是:{fact}")

结果如下:

总结&问题:

  • 以下是我在写代码中遗忘和出错的部分:
  • for city,summary in cities.items():
        print(f"\n{city}")
        for key,value in summary.items():
            print(cities[city])
            print(cities.get(city)) 
            print(city)
            print(f"{city}属于{value}")
    
    

    结果是:

    • print(f"\n{city}")打印出的是第一行beijing

    • print(cities[city]) 打印出的是第二行,print(cities.get(city)) 打印出的是第三行,这两个结果是一样的,如最后一个红框。

      • 这里的问题是提取了值,但没有单独每个信息进行区分,有很多字符是不需要的代码,这个是嵌套比较难的地方,容易错,但好在把beijing、paris、akureyri都打出来了;

      • 下一步就是再把这个里面的提取出来,也就是用summary['country']、summary['population']、summary['fact']或者用赋值+summary['fact']取值法

      • 这里出现{}是因为值是一个字典,自己会带{},和有的时候报错出现{}的处理方法是不一样的。

    • print(f"{city}属于{value}")打印出来是遍历三个值了,但是,属于不是符合每一个,所以需要改变。

      • 最后改成如下

        for city,summary in cities.items():
            print(f"\n{city}")
            for key,value in summary.items():
                print(f"{city}属于{summary['country']}")
                print(f"人口是{summary['population']}")
                print(f"这里是{summary['fact']}")
        
        

        

  • 两周不碰代码就不会了,很多规则会记不清,要重新摸索
  • 这个案例里面,键值对的结构一样,和键值对分别代表不同信息的获取方式不一样,嵌套中就是用这样的方式,
  • 第一个字典所有键值对都是——城市:城市信息,
  • 第二个字典的键值对是不同维度的信息——城市、人口、简介

我的问题是怎么去除3遍的结果,我尝试了很多了

cities = {
    'beijing':{
        'country':'China',
        'population':'2.2trillion',
        'fact':'中国首都,历史悠久,文化灿烂,世界文化遗产丰富'
        },
    'paris':{
        'country':'Fracnce',
        'population':'1.2trillion',
        'fact':'法国首都,四大世界级城市之一'
        },
    'Akureyri':{
        'country':'Iceland',
        'population':'fifteen thousand',
        'fact':'"北方之都",位于冰岛最北部埃亚峡湾尽头,地处北极圈边缘',
        },
    }
for city,summary in cities.items():
    print(f"\n{city}")
    for key in set(summary.keys()):
        print(f"属于{summary['country']}")

结果是: 

  1. 这个代码中,我去掉了最后一行print()里面的{city}减少一个变量,减少了一个影响因素;
  2. for key in set(summary.keys()): 这一部分,把items的影响去除了,改成了keys(),实际这个也是循环的作用,按理说结果是取值,应该是只有一个france,为了避免这种情况,我还加了set()也没有用,所以不知道怎么处理了。不知道大佬们会怎么处理?感谢。

标签:city,python,country,求问,summary,嵌套,print,fact,population
From: https://blog.csdn.net/m0_65362302/article/details/139494473

相关文章

  • python系列:FastAPI系列 10-路由管理APIRouter
    FastAPI系列10-路由管理APIRouterFastAPI系列10-路由管理APIRouter前言一、路由管理APIRouter二、FastAPI主体总结FastAPI系列10-路由管理APIRouter前言在fastapi中也有类似的功能通过APIRouter来管理一、路由管理APIRouter正在开发一个应用程序或We......
  • mac python 包管理工具 pip 的配置
     python3--versionPython3.12.3brewinstallpython@3.12pip3configsetglobal.index-urlhttps://pypi.tuna.tsinghua.edu.cn/simplepip3configsetglobal.break-system-packagestrue pip3installaiohttppython包管理工具pip的配置 近几年来,python的包......
  • python-数据分析-Pandas-2、DataFrame对象
    如果使用pandas做数据分析,那么DataFrame一定是被使用得最多的类型,它可以用来保存和处理异质的二维数据。这里所谓的“异质”是指DataFrame中每个列的数据类型不需要相同,这也是它区别于NumPy二维数组的地方。DataFrame提供了极为丰富的属性和方法,帮助我们实现对数据的重塑、......
  • 1.安装opencv-python失败的解决办法 2.pip 安装失败 3.WARNING:Ignoring invalid distr
    问题:安装opencv-python失败:用:pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpleopencv-python安装会被卡在Buildingwheelforopencv-python(pyproject.toml)...之后便安装失败。使用顺序:先使用方法二,再使用方法一(有可能不会解决问题),用方法三查看问题出......
  • python学习笔记
    (1)help('keywords')控制台内输入关键字 pycharm常用操作: [1]ctrl+y 恢复上一次操作 [2]ctrl+z 撤回上一次操作(2)%常见格式: [1]%s 字符串 [2]%d 整数 [3]%f 小数(浮点数)(3)注释: 单行注释: #________ 多行注释: """______"""(4)运算符号: / 除 // ......
  • Python模拟时钟演示及源代码
     turtle是Python中的一个模块,用于绘图和图形设计。它提供了一个简单的绘图窗口,可以绘制各种形状、线条和颜色等。通过使用turtle模块,我们可以在屏幕上实时地绘制图形,并且可以控制画笔的移动、旋转等操作。 2、使用示例下面是一个简单的使用turtle模块绘制一个正方形的......
  • python gdal 安装使用(Windows, python 3.6.8)
    pythongdal安装使用pythonGDAL有两种安装方式:第一种是利用pipinstallgdal安装如果安装失败,可以采用下面的方法:第二种离线安装步骤:(1)查看python版本;(2)下载gdal的whl文件;(3)利用pipinstall下载的gdal.whl文件;(4)将gdal中的可执行文件所在路径添加到系统环境中;具体操作见......
  • Python-金融编程第二版-GPT-重译--一-
    Python金融编程第二版(GPT重译)(一)原文:annas-archive.org/md5/d2f94efd019a2e2cb5c4fa9f260d63c译者:飞龙协议:CCBY-NC-SA4.0第一部分:Python与金融本部分介绍了Python在金融领域的应用。它包括三章:第一章简要讨论了Python的一般情况,并论述了为什么Python确实非常......
  • Python-金融编程第二版-GPT-重译--四-
    Python金融编程第二版(GPT重译)(四)原文:annas-archive.org/md5/d2f94efd019a2e2cb5c4fa9f260d63c译者:飞龙协议:CCBY-NC-SA4.0第八章:金融时间序列时间的唯一目的是让一切不是同时发生。阿尔伯特·爱因斯坦金融时间序列数据是金融领域最重要的数据类型之一。这是按日期和/......
  • Python-金融编程第二版-GPT-重译--三-
    Python金融编程第二版(GPT重译)(三)原文:annas-archive.org/md5/d2f94efd019a2e2cb5c4fa9f260d63c译者:飞龙协议:CCBY-NC-SA4.0第六章:面向对象编程软件工程的目的是控制复杂性,而不是创建它。PamelaZave介绍面向对象编程(OOP)是当今最流行的编程范式之一。正确使用时,它与过......