当前位置: 主页 > Python语言

python 遍历dict元素-python dict 遍历顺序

发布时间:2023-03-12 21:06   浏览次数:次   作者:佚名

dict

定义

dict中,每一项包含一个key和一个value,key和value是一一对应的。

d = {

‘Alice’: 45,

‘Bob’: 60,

‘Candy’: 75,

‘David’: 86,

‘Ellena’: 49

}

print(d)

==>{‘Alice’: 45, ‘Bob’: 60, ‘Candy’: 75, ‘David’: 86, ‘Ellena’: 49}

在定义里,我们使用花括号{}表示这是一个dict,然后key和value之间使用冒号:分割python 遍历dict元素,并且每一组key:value的最后,以逗号,表示这一组的结束。

我们也可以使用以下的方式定义一个dict。

d = dict()

print(d) # ==> {}

不过这种定义方式,默认得到的是一个空dict,需要调用函数往里面添加数据。

读取dict中元素值

d[key]

if ‘Alice’ in d:

print(d[‘Alice’]) # ==> 45

if ‘Dodo’ in d: # Dodo不存在,所以不会走下面的逻辑

print(d[‘Dodo’])

d.get(key)

print(d.get(‘Alice’)) # ==> 45

print(d.get(‘Dodo’)) # ==> None

添加元素

需要往里面添加Dodo、Mimi的成绩时,可以使用赋值语句往里面添加元素:

d[‘Mimi’] = 72

d[‘Dodo’] = 88

value可以是任意类型的元素python 遍历dict元素,可以是list、tuple等

更新元素

当key不存在时,往dict中添加对应的key: value元素。

当key存在时,会更新dict,用新的value替换原来的value。

为了避免不必要的覆盖问题,我们需要先***判断key是否存在,然后再做更新。***

删除元素

pop()方法需要指定需要删除的元素的key,并返回对应的value。

假设Alice转校了,需要把Alice的成绩删除,可以这样写:

print(d) # ==> {‘Alice’: 45, ‘Bob’: 60, ‘Candy’: 75, ‘David’: 86, ‘Ellena’: 49}

alice_score= d.pop(‘Alice’)

print(alice_score) # ==> 45

print(d) # ==> {‘Bob’: 60, ‘Candy’: 75, ‘David’: 86, ‘Ellena’: 49}

若Alcie不存在 会报错,先判断

name = ‘Alice’

if name in d.keys():

d.pop(name)

else:

print(’{} not in d’.format(name))

特点

***优点***查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。

***缺点***是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢

key不可变

遍历dict

遍历dict有两种方法

第一种是遍历dict的所有key,并通过key获得对应的value。

d = {

‘Alice’: 45,

‘Bob’: 60,

‘Candy’: 75,

‘David’: 86,

‘Ellena’: 49

}

for key in d: # 遍历d的key

value = d[key]

if value > 60:

print(key, value)

==> Candy 75

==>David 86

第二种方法是通过dict提供的items()方法,items()方法会返回dict中所有的元素,每个元素包含key和value。

for key, value in d.items():

if value > 60:

print(key, value)

==> Candy 75

==>David 86

获取dict的所有key

dict提供keys()函数,可以返回dict中所有的key。

d = {‘Alice’: [50, 61, 66], ‘Bob’: [80, 61, 66], ‘Candy’: [88, 75, 90]}

for key in d.keys():

print(key)

获取dict所有的value

dict提供values()函数,可以返回dict中所有的value。

d = {‘Alice’: [50, 61, 66], ‘Bob’: [80, 61, 66], ‘Candy’: [88, 75, 90]}

for key in d.values():

print(key)

清除所有元素

dict提供clear()函数,可以直接清除dict中所有的元素。

d = {‘Alice’: [50, 61, 66], ‘Bob’: [80, 61, 66], ‘Candy’: [88, 75, 90]}

print(d) # ==> {‘Alice’: [50, 61, 66], ‘Bob’: [80, 61, 66], ‘Candy’: [88, 75, 90]}

d.clear()

print(d) # ==> {}