python字典dict,及访问、增、删、改等基本用法

python的字典dict数据类型是以键值对的方式设计的,并用花括号“{}”括起来,即{key : value},多个键值对用逗号隔开。字典是python数据类型中非常重要的一种,是机器学习的决策树算法当中的基本数据结构。

其中,字典的key是不可修改的(但可以删除),可以用整数、字符串、byters和元组表示,其中最常用的是字符串。列表、字典、集合等则不可以作为字典的key,并且key必须是唯一的,相同的话将覆盖掉原先的value值。

与列表、元组等一样,我们也将讲解一下字典Dict的创建和增删改等基本用法。


python字典dict的创建声明

python字典的创建声明与前面介绍的其他数据类型,如列表list,元组tuple等基本一致,只是所运用的符号有所不同。

字典创建示例

>>> a = {'x'=2} #声明一个key为字符,value为整型的字典
>>> a
{'x':2}
>>> type(a)
<class 'dict'>
>>> a = dict(x=1)
>>> a
{'x':1} #注意,字典a的键“x”的值被重复赋值,因此该键的值将被覆盖
>>> type(a)
<class 'dict'>
>>> b = {'至简计算':'x1y1z1.com'} #声明了一个key为字符串,value也为字符串的字典
>>> b
{'至简计算': 'x1y1z1.com'}
>>> type(b)
<class 'dict'> 
>>> c = {1:2} #声明了一个key为int整型,value也为int整型的字典
>>> c
{1:2}
>>> type(c)
<class 'dict'> 
>>> d = {(1,2):'python全栈'} #声明了一个key为元组,value为字符串的字典
>>> type(d)
<class 'dict'>
>>> e = dict(x1y1z1 = '至简计算') #注意key并没有用引号表示,也不能加入“.。”等符号,大家可以将key换成x1y1z1.com试一试
>>> e
{'x1y1z1' : '至简计算'}
>>> f= {[1,2]:'Hello,World'}#试图声明一个key为列表,value为字符串的字典
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

至于其他的字典创建方式,比如key为整型,value为字符串或列表等,都可以自己去尝试一下。

字典元素的访问

与列表和元组通过索引来访问元素不同,字典是用key来访问value,速度非常快。

示例

>>> a = dict(x=1,y=2,z=3)
>>> a
{'x': 1, 'y': 2, 'z': 3}
>>> a['x'] #通过键'x'访问键上的值value
1

字典元素的添加

字典元素的添加可以直接通过添加键key,并进行赋值,比如下面的例子:

添加示例

>>> a = dict(x=1,y=2,z=3)
>>> a
{'x': 1, 'y': 2, 'z': 3}
>>> a['x1y1z1.com'] = '至简计算' #通过添加键,并进行赋值,便可添加字典元素
>>> {'x': 1, 'y': 2, 'z': 3, 'x1y1z1.com': '至简计算'}

字典元素的修改

通过键进行重新赋值,便可修改字典的元素,注意字典的键是不能修改的,只能添加或删除。

修改示例

>>> a = dict(x=1,y=2,z=3)
>>> a
{'x': 1, 'y': 2, 'z': 3}
>>> a['x'] = 'x1y1z1.com' #通过重新赋值,便可对字典元素进行修改
>>> a
{'x': 'x1y1z1.com', 'y': 2, 'z': 3}

字典元素的删除方法、字典清空方法和删除字典方法

我们直接通过例子来看一看吧!

删除示例

 >>> a = dict(x=1,y=2,z=3)
>>> a
{'x': 1, 'y': 2, 'z': 3}
>>> del a['x'] #删除字典a中键为'x'的键和对应的值
>>> a
{'y': 2, 'z': 3}
>>> b = a.pop('y') #通过pop()函数弹出(删除)对应的键值,返回键对应的值
>>> b
2
>>> a
{'z': 3}
>>> a.clear() #清空字典
>>> a
{}
>>> del a #删除字典
>>> a #字典a已经不存在,a成为未声明not defined的变量
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined 

下一章节我们将继续介绍python字典的一些常用函数和迭代遍历方法。


全栈后端 / python教程 :


























Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.