• 第六章—字典


    6-1 人 :使用一个字典来存储一个熟人的信息,包括名、姓、年龄和居住的城市。该字典应包含键first_name 、last_name 、age 和city 。将存储在该字典中 的每项信息都打印出来。

    1 messages={'first_name':'peter','last_name':'Smith','age':25,'city':'Beijing'}
    2 print(messages['first_name'])
    3 print(messages['last_name'])
    4 print(messages['age'])
    5 print(messages['city'])
    6 print(messages)

    输出:

    1 peter
    2 Smith
    3 25
    4 Beijing
    5 {'first_name': 'peter', 'last_name': 'Smith', 'age': 25, 'city': 'Beijing'}

    6-2 喜欢的数字 :使用一个字典来存储一些人喜欢的数字。请想出5个人的名字,并将这些名字用作字典中的键;想出每个人喜欢的一个数字,并将这些数字作为值存储在字典中。打印每个人的名字和喜欢的数字。为让这个程序更有趣,通过询问朋友确保数据是真实的。

    1 messages={'ada':1,'ava':2,'Peter':3,'Marry':'4','Mark':5}
    2 print(messages)

    输出:

    1 {'ada': 1, 'ava': 2, 'Peter': 3, 'Marry': '4', 'Mark': 5}

    6-3 词汇表 :Python字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表。

     想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在词汇表中。

     以整洁的方式打印每个词汇及其含义。为此,你可以先打印词汇,在它后面加上一个冒号,再打印词汇的含义;也可在一行打印词汇,再使用换行符( )插 入一个空行,然后在下一行以缩进的方式打印词汇的含义。

    1 messages={
    2     'first_name':'peter',
    3     'last_name':'Smith',
    4     'age':25,
    5     'city':'Beijing'}
    6 for key,value in messages.items():
    7     print(key,':',value)#注意此句用法

    输出:

    1 first_name : peter
    2 last_name : Smith
    3 age : 25
    4 city : Beijing

    6-4 词汇表2 :既然你知道了如何遍历字典,现在请整理你为完成练习6-3而编写的代码,将其中的一系列print 语句替换为一个遍历字典中的键和值的循环。确定该 循环正确无误后,再在词汇表中添加5个Python术语。当你再次运行这个程序时,这些新术语及其含义将自动包含在输出中。 

     程序同6-3


     

     

    6-5 河流 :创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键—值对可能是'nile': 'egypt' 。

     使用循环为每条河流打印一条消息,如“The Nile runs through Egypt.”。

     使用循环将该字典中每条河流的名字都打印出来。

     使用循环将该字典包含的每个国家的名字都打印出来。

     1 message={
     2     'nile':'egypt',
     3     'huanghe':'China',
     4     'changjiang':'China'
     5     }
     6 for river in message.keys():
     7     print(river)
     8 for country in message.values():
     9     print(country)
    10 for river,country in message.items():# .items()表示键和值的统称

    输出:

    1 nile
    2 huanghe
    3 changjiang
    4 egypt
    5 China
    6 China
    7 The nile runs through egypt
    8 The huanghe runs through China
    9 The changjiang runs through China

    6-6 调查 :在6.3.1节编写的程序favorite_languages.py中执行以下操作。

    创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。

    遍历这个人员名单,对于已参与调查的人,打印一条消息表示感谢。对于还未参与调查的人,打印一条消息邀请他参与调查。

     1 favorite_languages={
     2     'Jen':'pyhton',
     3     'sarah':'c',
     4     'edward':'ruby',
     5     'phil':'python'
     6 }
     7 names1={'Jen','phil','ada'}
     8 for name in favorite_languages.keys():
     9     if name in names1:
    10         print('Hi '+name+', thank you .')
    11     else:
    12         print("Hi "+name+', would you like to attend this research.')

    输出;

    1 Hi Jen, thank you .
    2 Hi sarah, would you like to attend this research.
    3 Hi edward, would you like to attend this research.
    4 Hi phil, thank you .

    6-7 人 :在为完成练习6-1而编写的程序中,再创建两个表示人的字典,然后将这三个字典都存储在一个名为people 的列表中。遍历这个列表,将其中每个人的所有 信息都打印出来。

     
    1 message1={'first_name':'peter','last_name':'Smith','age':25,'city':'Beijing'}
    2 message2={'first_name':'ada','last_name':'bbc','age':23,'city':'Tianjin'}
    3 message3={'first_name':'ava','last_name':'aac','age':21,'city':'Hunan'}
    4 messages=[message1,message2,message3]
    5 for message in messages:
    6     print(message)

    输出:

    1 {'first_name': 'peter', 'last_name': 'Smith', 'age': 25, 'city': 'Beijing'}
    2 {'first_name': 'ada', 'last_name': 'bbc', 'age': 23, 'city': 'Tianjin'}
    3 {'first_name': 'ava', 'last_name': 'aac', 'age': 21, 'city': 'Hunan'}

    6-8 宠物 :创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名;在每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为pets 的列表中,再遍历该列表,并将宠物的所有信息都打印出来。

     1 #*****创建多字典存入一个列表中打印所有字典***#
     2 pet1={
     3     'type':'dog', 'ower':'peter'}
     4 pet2={
     5     'type':'cat','ower':'lili'}
     6 pet3={
     7     'type':'rabbit','ower':'heli'} #建立字典使用花括号
     8 pets=[pet1,pet2,pet3] #将多个字典存放入一个列表中时是中括号
     9 for pet in pets:
    10     print(pet)  #打印所有的字典

    输出:

    1 {'type': 'dog', 'ower': 'peter'}
    2 {'type': 'cat', 'ower': 'lili'}
    3 {'type': 'rabbit', 'ower': 'heli'}
     

    6-9 喜欢的地方 :创建一个名为favorite_places 的字典。在这个字典中,将三个人的名字用作键;对于其中的每个人,都存储他喜欢的1~3个地方。为让这个练 习更有趣些,可让一些朋友指出他们喜欢的几个地方。遍历这个字典,并将其中每个人的名字及其喜欢的地方打印出来。

     1 #*******字典键值中值含有多个元素******#
     2 favorate_place={
     3     'peter':['a','b','c'],
     4     'lili':['c','d','e'],
     5     'helo':['f','g','h']
     6 }
     7 for name,places in favorate_place.items():
     8     print("
    "+name)#换行
     9     print(places)#注意这句与下面两句的区别,此句打印出来有中括号
    10     for place in places:
    11         print("	"+place)#"	"空格,这种打印出来没有中括号,并且自动换行

    输出:

     1 peter
     2 ['a', 'b', 'c']
     3     a
     4     b
     5     c
     6 
     7 lili
     8 ['c', 'd', 'e']
     9     c
    10     d
    11     e
    12 
    13 helo
    14 ['f', 'g', 'h']
    15     f
    16     g
    17     h

    6-10 喜欢的数字 :修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来。 

     原理同6-9

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

     1 #***字典中创建字典****#
     2 cities={
     3     "Beijing":{
     4         'country':'China',
     5         'population':'13',
     6         'fact':'a'
     7     },
     8     "Haerbin":{
     9         'country':'China',
    10         'population':'13',
    11         'fact':'b'
    12     },
    13     "Changsha":{
    14         'country':'China',
    15         'population':'13',
    16         'fact':'b'
    17     }
    18 }
    19 for city,infos in cities.items():
    20     print(city)
    21     print(infos)

    输出:

    1 Beijing
    2 {'country': 'China', 'population': '13', 'fact': 'a'}
    3 Haerbin
    4 {'country': 'China', 'population': '13', 'fact': 'b'}
    5 Changsha
    6 {'country': 'China', 'population': '13', 'fact': 'b'}
  • 相关阅读:
    hadoop 执行python 注意的地方
    ADOBE FLASH BUILDER 4.6 IOS 开发之离线地图
    ADOBE FLASH BUILDER 4.6 IOS 开发之地图控件
    Flex 4.6 ADT 工具编译异常
    Web中的广告组件(幻灯片组件)实现
    [译]《学习HTML5游戏编程》第二章
    自适应两栏布局的最简实现
    [译]InfoQ1205
    [译]《学了HTML5游戏编程》前言
    [译]InfoQ1201
  • 原文地址:https://www.cnblogs.com/liuhaier/p/8922051.html
Copyright © 2020-2023  润新知