遍历所有的键-值对:
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语句
领取专属 10元无门槛券
私享最新 技术干货