【Python】字典遍历(dict遍历)

【Python】字典遍历(dict遍历)

字典也是我们在做数据分析时经常用到的类型,之前小白有总结过DataFrame的遍历,这篇博文,小白整理了自己遍历字典时的几种方法。

众所周知,字典是键值对的组合,那么对字典的遍历就自然而然的包含了对键和值的遍历,下面依次介绍遍历键、值,键值三种情况的遍历。

首先,创建一个字典,以便下面的遍历。

dict = {

'小明':129,

'小兰':148,

'小红':89

}

1.遍历key

可以看到,这里对字典key值的遍历,有三种方法,其中第三种方法报错了,这是因为小白使用的是PY3版本,在python3中keys()的方法替代了iterkeys()方法,如果是用python2版本是可以的,不过小白建议掌握python3里的方法,毕竟python2之后用的会越来越少。

#function1

for key in dict:

print (key)

---------------结果---------------------

小明

小兰

小红

#function2

for key in dict.keys():

print (key)

---------------结果---------------------

小明

小兰

小红

#function3

for key in dict.iterkeys():

print (key)

---------------结果-----------------------

AttributeError Traceback (most recent call last)

in

1

2 #方法三

----> 3 for key in dict.iterkeys():

4 print (key)

AttributeError: 'dict' object has no attribute 'iterkeys'

2.遍历value

同样,第二种方式报错的原因是一样的,python3中去掉了第二种方式,以方法一来代替,这里遍历value时和遍历key不一样,这里没有像遍历key时的第一种方法了,遍历key的第一种方法,默认输出就是key

#function1

for value in dict.values():

print (value)

------------------------

129

148

89

#function2

for value in dict.itervalues():

print (value)

-----------------------------

AttributeError Traceback (most recent call last)

in

----> 1 for value in dict.itervalues():

2 print (value)

AttributeError: 'dict' object has no attribute 'itervalues'

3.同时遍历key和value

同时遍历的方法比较多,我们一一来看:

(1)首先看方法一和方法二,其实这两种方法是差不多的,只是加不加括号的区别,这个可以根据喜好来选择。

(2)然后看方法三,方法三使用简写的方式实现了对key和value的读取,形式上更加简便

(3)再看结合zip使用的两种方法,其实方法四更像方法一和二,只是多了一个zip操作,方法五更加像方法三,也是使用了zip函数

注意:另外,我们来看下关于key,value方式和kv方式的区别,在方法四和五时,小白输出了数据的类型,两种方式的区别就主要在于输出数据的数据类型,key,value方式输出的是值本身,数据是什么类型,结果就是什么类型,但是方法五输出的tuple类型。

#function1

for key,value in dict.items():

print ('key: ',key,'value: ',value)

------------------------

key: 小明 value: 129

key: 小兰 value: 148

key: 小红 value: 89

#function2

for (key,value) in dict.items():

print ('key: ',key,'value: ',value)

------------------------

key: 小明 value: 129

key: 小兰 value: 148

key: 小红 value: 89

#function3

for kv in dict.items():

print ('kv is : ',kv)

------------------------

kv is : ('小明', 129)

kv is : ('小兰', 148)

kv is : ('小红', 89)

----------------------结合zip使用---------------------

#function4

for key,value in zip(dict.keys(), dict.values()):

print ('key:',key,'value: ',value)

print('type key:',type(key),'type value:',type(value))

------------------------

key: 小明 value: 129

type key: type value:

key: 小兰 value: 148

type key: type value:

key: 小红 value: 89

type key: type value:

#function5

for kv in zip(dict.keys(), dict.values()):

print ('kv: ',kv)

print('type:',type(kv))

------------------------

kv: ('小明', 129)

type:

kv: ('小兰', 148)

type:

kv: ('小红', 89)

type:

4.定义方法读取key和value

上面介绍了读取key和value的方法,那么,如果我们在一个项目中要对key和value读取,还是定义成方法来读取,输出结果,这样便于我们的调用以及后面的使用,如下:

#定义读key值的函数

def keys_function(dict):

keys = []

#读出key

for k in dict.keys():

keys.append(format(k))

return keys

#定义读出value

def values_function(dict):

values = []

for v in dict.values():

values.append(format(v))

return values

print('key:',keys_function(dict),'type:',type(keys_function(dict)))

------------结果--------------

key: ['小明', '小兰', '小红'] type:

print('value:',values_function(dict),'type:',type(values_function(dict)))

------------结果--------------

value: ['129', '148', '89'] type:

猜你喜欢 💖

2025十大小额贷款APP排行榜(利息篇)发布时间:2025-2-27 11:35阅读:805
微博如何吸真粉活粉?吸粉攻略
365会被黑吗

微博如何吸真粉活粉?吸粉攻略

📅 07-12 👁️ 251
微信捐步数怎么弄(微信捐步数在哪里)
365bet现金赌场

微信捐步数怎么弄(微信捐步数在哪里)

📅 07-22 👁️ 852