python遍历任意层次字典_python概论(4)小康小白,入门,四

字典保存的数据是键值对,每一项包含一个key和一个value。key和value一一对应。这个与Java中的map比较相像,感兴趣的同学可以去自行了解一下。

字典的首要特点是查找速度快,且查找速度与元素个数无关,而list的查找速度随元素的增加而逐渐下降。但dict的缺点是占用内存大,且会浪费很多内容,list相反,占用内存小,但是查找速度慢。

在Python3.5之前,dict中的元素是无序的,也就是dict中元素的插入顺序和打印顺序未必一致。但是在Python3.6、Python3.7版本中,却得到了有序的结果。为什么在不同的版本中,会得到不一样的结果呢?这是因为底层的实现发生了改变,我们可以认为在Python3.6的版本以后,dict是有序的,但是一般而言,为了避免不必要的误解,一般在需要有序的dict时,我们会使用一种叫做Ordereddict的字典,来确保有序。

在字典中,key不能重复,且key不可变,所以对于基础数据类型,字符串、数字等,这些都是不可变的,可以作为dict的key,而对于复杂数据类型,tuple是不可变的,list是可变的,因此tuple可以作为dict的key,但是list不可以作为dict的key,否则将会报错。

定义:

字典名 = { key1 : value , key2 : value2 , key3 : value3 , .....}

如何定义空字典?

d = dict()

字典中是通过key来查找相应的。通过 字典名[key],就可以查询到对应的value值。

在字典中如果用来查询的key不存在时,代码会报错。

所以推荐在使用key查询对应的value值时,先判断key是否存在。

# coding = utf-8

d = {

'Alice': 45,

'Bob': 60,

'Candy': 75,

'David': 86,

'Ellena': 49,

'Gaven' : 86

}

if 'Alice' in d:

print(d['Alice'])

else:

print('此key值不存在')

还有一种方法:get方法获得对应key的值。

# coding = utf-8

d = {

'Alice': 45,

'Bob': 60,

'Candy': 75,

'David': 86,

'Ellena': 49,

'Gaven' : 86

}

if 'Alice' in d:

print(d.get('Alice'))

else:

print('此key值不存在')

当key不存在时,get方法不会报错而是返回None,所以更加推荐使用get方法来获取dict的元素。

向字典中添加新键值对时,只需要利用赋值语句的形式就可以。

# coding = utf-8

d = {'Alice': 45, 'Bob': 60, 'Candy': 75, 'David': 86, 'Ellena': 49}

print(d)

d['xiaokangxiaobai'] = '小康小白'

print(d)

字典中value对应的值可以是任意类型的元素,例如基本的数据类型还有List,tuple,包括字典等。

Python更新dict元素

与向字典中添加新元素相同,使用赋值语句就好,格式也相同,这里小白就不详细说了。

放个示例代码:

# coding = utf-8

d = {

'Alice': [45],

'Bob': [60],

'Candy': [75],

}

#使用赋值语句向字典中添加新键值对时,应当先判断该key在字典中是否存在,否则原本的

新增就变成了修改

if 'Alice' in d:

d['Alice'] = ['xiaokangxiaobai']

else:

print('此key不存在')

Pyhton删除dict元素

方法:pop()方法

只需要在pop的参数中填入key,就可以删除对应的键值对,并返回对应的value。

但需要注意的是当key不存在时,调用pop方法删除会报错。

字典的key()方法

无需参数,返回dict的所有key。

dict的遍历方法

1. 遍历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)

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

for key, value in d.items():

if value > 60:

print(key, value)

获取dict所有的value

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

清除所有元素

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值