首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第十六课 字典(二)

遍历所有的键-值对:

michael={'hair':'black','sex':'boy','hobby':'singing'}

for key,value in michael.items():

print('key is:'+key)

print('value is:'+value)

结果是:

key is:hair

value is:black

key is:sex

value is:boy

key is:hobby

value is:singing

这里的key和value没有规定成一定要这样赋值,事实上你就算把key和value换成k和v也是可以的。

遍历所有的键:

pokemon={

'xiaozhi':'pikaqiuf',

'xiaogang':'dayanshe',

'xiaoxia':'baoshihaixing',

}

for name in pokemon.keys():

print(name.title())

结果是:

Xiaozhi

Xiaogang

Xiaoxia

遍历字典里面所有的键和遍历字典所有的键-值差不多,只是将.items()换成了.keys(),其他不变。这样打印出来的就都是字典里面的键了。

上面的.keys()可以遍历字典里面的键,但是事实上,不需要.keys()也可以遍历字典里面的键,把上面的代码的.keys()去掉后结果不变。

在遍历字典中加入if语句

pokemon={

'xiaozhi':'pikaqiu',

'xiaogang':'dayanshe',

'xiaoxia':'baoshihaixing',

}

favorite_name=['xiaozhi']

for name in pokemon.keys():

print(name.title())

if name in favorite_name:

print(' hi '+name.title()+

' I see your favorite pokemon is '+

pokemon[name].title()+'!')

结果是:

Xiaozhi

hi Xiaozhi I see your favorite pokemon is Pikaqiu!

Xiaogang

Xiaoxia

我来简单说明一下这个代码的逻辑结构:

首先我们创建一个字典,然后再创建一个列表。用for循环遍历字典,打印出字典中的键,再用if语句判断name是否存在在我们创建的列表里,如果存在,即打印后面的内容。

同样的我们可以反向来操作这个代码:

pokemon={

'xiaozhi':'pikaqiu',

'xiaogang':'dayanshe',

'xiaoxia':'baoshihaixing',

}

if 'xiaoming' not in pokemon:

print('xiaoming,you are out of pokemon')

结果是:

xiaoming,you are out of pokemon

或者我们也可以:

pokemons={

'xiaozhi':'pikaqiu',

'xiaogang':'dayanshe',

'xiaoxia':'baoshihaixing',

}

out_name=['xiaoming']

for pokemon in pokemons:

print(pokemon)

if pokemon not in out_name:

print('xiaoming,you are out of pokemon')

结果是:

xiaozhi

xiaoming,you are out of pokemon

xiaogang

xiaoming,you are out of pokemon

xiaoxia

xiaoming,you are out of pokemon

以上代码都不难,主要是一个逻辑的梳理和语法上的分析。自己去梳理和分析每一行的代码,这里我不细说了。

按顺序遍历字典中的所有键

python其实是不关心字典里面的顺序的,python只关心字典里面键和值的关系。因此我们这边如果想要让字典以特定的顺序来返回元素的话就要调取sorted()函数,如下代码:

pokemons={

'michael':'pikaqiu',

'jane':'dayanshe',

'kangkang':'baoshihaixing',

}

for pokemon in sorted(pokemons.keys()):#keys记得不要忽略后面的s

print(pokemon+' hello')

结果是:

jane hello

kangkang hello

michael hello

这个代码的for循环里面首先对字典调用了sorted()函数,这样python就会在开始遍历之前先排好顺序。

遍历字典中的值

pokemons={

'michael':'pikaqiu',

'jane':'dayanshe',

'kangkang':'baoshihaixing',

}

for pokemon in pokemons.values():

print(pokemon)

结果是:

pikaqiu

dayanshe

baoshihaixing

这个很简单,没什么好说的,但是现在有一个问题,看如下代码:

favorite_languages={

'michale':'c',

'kangkang':'python',

'jane':'java',

'maria':'python'

}

for language in favorite_languages.values():

print(language)

结果是:

c

python

java

python

很显然,我们看到字典里面的值都被打印出来了,但是里面却有两个想同的python。如果我们要去除重复的只把值打印一次要怎么做呢?

这里就要用set()函数。set这个单词在英文里面是集合的意思,因此set()函数在这里也是处于一个集合的作用,只不过这个集合会剔除重复的内容,代码如下:

favorite_languages={

'michale':'c',

'kangkang':'python',

'jane':'java',

'maria':'python'

}

for language in set(favorite_languages.values()):

print(language)

结果是:

c

python

java

作业:

1、创建一个字典遍历其中的键-值对。

2、按顺序遍历字典中的键

3、遍历字典中的值

4、字典中穿插进一个if语句

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180326G1HPYK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券