Python-6.2-字典-练习

一:对一个能够以不同速度移动的DOG的位置进行跟踪。
  • 将存储该DOG的当前速度,并据此确定该DOG当前的坐标
dog = {'x_position':0,'y_position':10,'speed':'slow'}
print("The dog original x_position is " + 
      str(dog['x_position']) + 
      " and y_position is " + 
      str(dog['y_position']))
#可将速度改为快速
dog['speed'] = 'quick'
#如果速度很慢,增加加10
if dog['speed'] == 'slow':
    x_increment = 10
    y_increment = 10
#如果速度中等,增量加20
elif dog['speed'] == 'medium':
    x_increment = 20
    y_increment = 20
#如果速度很快,增量加30
else :
    x_increment = 30
    y_increment = 30
#新位置等于老位置加上增量
dog['x_position'] = dog['x_position'] + x_increment
dog['y_position'] = dog['y_position'] + y_increment
print("The dog now x_position is " + 
      str(dog['x_position']) + 
      " and y_position is " + 
      str(dog['y_position']))

The dog original x_position is 0 and y_position is 10
The dog now x_position is 30 and y_position is 40

二:在循环中,可使用当前键来访问与之相关联的值
  • 遍历字典中的名字,但在名字为指定朋友的名字时,打印一条信息,指出其喜欢的语言
favorite_languages = {
    'jack':'python',
    'uni':'c',
    'alen':'java',
    'nike':'php'
}
#指定朋友
friends = ['uni','alen']
#遍历字典中的名字
for name in favorite_languages.keys():
    print('\n' + name.title())
    #如果字典中的名字在指定朋友中,则打印一条信息
    if name in friends:
        print("Hi," + name.title() + 
              ".I know you favourite language is " + 
              favorite_languages[name])
    else :
        print("Sorry , " + name.title())

Jack
Sorry , Jack

Uni
Hi,Uni.I know you favourite language is c

Alen
Hi,Alen.I know you favourite language is java

Nike
Sorry , Nike

三:确定某个人是否接受了调查
#first----遍历字典中所有的键-值对,再来if-else筛选出,会打印出四条语句
favorite_languages = {
    'jack':'python',
    'uni':'c',
    'alen':'java',
    'nike':'php'
}
name = 'asd'
for names in favorite_languages.keys():
    if name in names :
        print("Thands for " + name )
    else :
        print(name.title() + " ,please take our poll!")

print("--------------------------")

#second----没有遍历字典中的元素,keys()并非只能用于遍历。
实际上,他返回一个列表,其中包含字典中的所有键
favorite_languages = {
    'jack':'python',
    'uni':'c',
    'alen':'java',
    'nike':'php'
}
name = 'jac'
if name in favorite_languages.keys():
    print("Thanks for " + name + "!")
else :
    print(name.title() + " ,please take our poll!")

Asd ,please take our poll!
Asd ,please take our poll!
Asd ,please take our poll!
Asd ,please take our poll!
————————————
Jac ,please take our poll!

四:编写程序favourite_languages.py中执行一下操作
  • 创建一个应该会接受调查的人员名单,其中有些人已包含在字典中,而其他人未包含在字典中。
  • 遍历这个人员的名单,对于已参与调查的人,打印一条信息表示感谢。对于还未参与调查的人,打印一条信息邀请他参与调查
favourite_languages = {
    'jack' : 'php',
    'tony' : 'c',
    'job' : 'python',
    'mark' : 'java'
}
friends = ['jack','tony','job','mark','jj','dd']
for friend in friends:
    if friend in favourite_languages :
        print('\n' + friend.title() + 
              " ,thank for you investigation.")
    else :
        print('\n' + friend.title() + 
              " ,come and join us in our investigation.")

Jack ,thank for you investigation.

Tony ,thank for you investigation.

Job ,thank for you investigation.

Mark ,thank for you investigation.

Jj ,come and join us in our investigation.

Dd ,come and join us in our investigation.

五:在列表中包含大量的字典,而其中每个字典都包含特定对象的众多信息
  • 创建一个存储水果字典的空列表
  • 调用函数range()自动生成30种水果
  • 修改前3种水果,需要遍历一个只包含这些水果的切片
#创建水果的空列表
fruits = []
#调用函数range()自动生成30种水果
for one_fruit in range(30):
    new_fruit = {'color':'red',
                 'size':'big',
                 'price':5
    }
    #将30种水果添加到空列表中
    fruits.append(new_fruit)
#遍历水果列表前三个的切片
for fruit in fruits[0:3]:
    if fruit['color'] == 'red':
        #修改前三种水果的信息
        fruit['color'] = 'green'
        fruit['size'] = 'small'
        fruit['price'] = '8'
#打印出前六种水果
for fruit in fruits[:6]:
    print(fruit)
print("...")
#调用函数len()统计水果的种类
print("There are " + str(len(fruits)) + " kinds of fruits.")

{‘color’: ‘green’, ‘size’: ‘small’, ‘price’: ‘8’}
{‘color’: ‘green’, ‘size’: ‘small’, ‘price’: ‘8’}
{‘color’: ‘green’, ‘size’: ‘small’, ‘price’: ‘8’}
{‘color’: ‘red’, ‘size’: ‘big’, ‘price’: 5}
{‘color’: ‘red’, ‘size’: ‘big’, ‘price’: 5}
{‘color’: ‘red’, ‘size’: ‘big’, ‘price’: 5}

There are 30 kinds of fruits.

六:在字典中存储列表
  • 如果将每个人的回答都存储在一个列表中,被调查的人就可以选择多种喜欢的语言
  • 当我们遍历字典时,与每个被调查者相关联的都是一个语言列表,而不是一种语言
  • 在遍历该字典的for循环中,我们需要在使用一个for循环来遍历与被调查者相关联的语言列表
  • 可在遍历字典的for循环开头添加一条if语句,通过查看len(languages)的值确定当前的被调查者喜欢的语言是否有多种
#在字典中存储列表
favorite_languages = {
    'jim' : ['java','c'],
    'tony' : ['php','c++'],
    'jack' : ['python','java'],
    'mark' : ['python']
}
#遍历字典中所有的键-值对
for name , languages in favorite_languages.items():
    #调用函数len()检查值是否大于一
    if len(languages) > 1:
        print('\n' + name.title() +
              " favorite languages are:")
        for language in languages:
            print('\t' + language)
    else :
        print('\n' + name.title() + 
              " favorite languages is:")
        for language in languages:
            print('\t' + language)

Jim favorite languages are:
java
c

Tony favorite languages are:
php
c++

Jack favorite languages are:
python
java

Mark favorite languages is:
python

七:创建两种表示水果的字典,将这两种水果都存储在一个列表中
  • 遍历列表,将其中每种水果的信息都打印出来
  • 遇到的问题:不能将水果名和水果信息一一对于打印出来
apple = {
    'color' : 'red',
    'size' : 'big'
}
pear = {
    'color' : 'green',
    'size' : 'small'
}
fruits = [apple , pear]
name_fruit = ['apple','pear']
print(name_fruit[0])
for fruit in fruits:
    for key,value in fruit.items():
        print(key.title() + ' : ' + value.title())
        
print('__________________________________')

apple = {
    'color' : 'red',
    'size' : 'big'
}
pear = {
    'color' : 'green',
    'size' : 'small'
}
fruits = [apple , pear]
name_fruit = ['apple','pear']
print(name_fruit[0])
for fruit in fruits:
    print(fruit)

apple
Color : Red
Size : Big
Color : Green
Size : Small
——————————————
apple
{‘color’: ‘red’, ‘size’: ‘big’}
{‘color’: ‘green’, ‘size’: ‘small’}

八:创建一个名为cities的字典,其中将三个城市名用作键
  • 对于每座城市,都创建一个字典
  • 并在其中包含该城市所属国家country,人口约数population和食物代表food作为每座城市的键
  • 将每座城市的名字以及有关他们的信息都打印出来
cities = {
    'beijing' : {
        'country' : 'china',
        'population' : 'ten million',
        'food' : 'beijing duck'
    },
    'shanghai' : {
        'country' : 'china',
        'population' : 'eight million',
        'food' : 'shanghai fried bag'
    },
    'guangdong' : {
        'country' : 'china',
        'population' : 'five million',
        'food' : 'salt baked chicken'
    }
}
for key ,value in cities.items():
    print('\n')
    print("City name : " + key.title())
    for one_key , one_value in value.items():
        print('\t' + one_key.title() + ' : ' + 
              one_value.title())

City name : Beijing
Country : China
Population : Ten Million
Food : Beijing Duck

City name : Shanghai
Country : China
Population : Eight Million
Food : Shanghai Fried Bag

City name : Guangdong
Country : China
Population : Five Million
Food : Salt Baked Chicken

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值