Python学习笔记(二十) Python3字典 您所在的位置:网站首页 python3字典 Python学习笔记(二十) Python3字典

Python学习笔记(二十) Python3字典

2022-05-31 01:49| 来源: 网络整理| 查看: 265

Python3字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值  key=>value  对用冒号  :  分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号  {}  中 ,格式如下所示:

d = { key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

若字典中出现相同的键,后面的键值对会覆盖前面的键值对。

python字典中,键是唯一的,hashable type,不支持直接修改,值可以任意更改。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

 

也可如此创建字典:

dict1 = { 'abc': 456 }

dict2 = { 'abc': 123, 98.6: 37 }

 

访问字典里的值

把相应的键放入到方括号中,如下实例:

实例

以上实例输出结果:

dict['Name']:  Runoob

dict['Age']:  7

如果用字典里没有的键访问数据,会输出错误如下:

实例

以上实例输出结果:

修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

实例

以上实例输出结果:

dict['Age']:  8

dict['School']:  教程

删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

实例

但这会引发一个异常,因为用执行 del 操作后字典不再存在:

注:del() 方法后面也会讨论。

字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

实例

以上实例输出结果:

dict['Name']:  小菜鸟

2)键必须不可变,所以可以用数字、字符串或元组充当,而用列表(unhashable type)就不行,如下实例:

实例

以上实例输出结果:

Traceback (most recent call last):

  File "test.py", line 3, in 

dict = {['Name']: 'Runoob', 'Age': 7}

TypeError: unhashable type: 'list'

字典内置函数&方法

Python字典包含了以下内置函数:

序号

函数及描述

实例

1

len(dict)计算字典元素个数,即键的总数。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> len(dict)

3

2

str(dict)输出字典,以可打印的字符串表示。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> str(dict)

"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"

3

type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。

>>> dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

>>> type(dict)

Python字典包含了以下内置方法:

序号

函数及描述

1

dict.clear()删除字典内所有元素

2

dict.copy()返回一个字典的浅拷贝

python直接赋值、浅拷贝、深拷贝解析 ↓

https://www.cnblogs.com/wushuaishuai/p/7737865.html

https://www.cnblogs.com/wushuaishuai/p/7737917.html

https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

3

dict.fromkeys(seq[, value])  # []中内容可有可无创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4

dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值

5

key in dict

key not in dict如果键在字典dict里返回true,否则返回false

6

dict.items()以列表返回可遍历的(键, 值) 元组列表(数组)  # [(key, value), (key, value)]

7

dict.keys()返回一个迭代器,可以使用 list() 来转换为列表

8

dict.setdefault(key, default=None)和get()类似, 如果key在字典中,返回对应的值; 如果key不存在于字典中,将会添加key并将值设为default

9

dict.update(dict2)把字典dict2的键/值对更新到dict里

10

dict.values()返回一个迭代器,可以使用 list() 来转换为列表

11

href="https://www.runoob.com/python3/python3-att-dictionary-pop.html" dict.pop(key[,default])  # []中内容可有可无删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12

dict.popitem()随机返回并删除字典中的最后一对键和值。

'''Python3字典    字典是另一种可变容器模型,且可存储任意类型对象    字典的每个键值对 key => value 用冒号":"分隔,每个对之间用逗号","分隔,整个字典包括在花括号"{}"中    表示方式为:d = [key1 : value1, key2 : value2]        键必须是唯一的,但值则不必    键必须是不可变的,但值可以取任何数据类型,如字符串、数字    键可以是字符串,也可以是整型数字'''

# print("dict['Age'] = ", dict['Age'])# print("dict['School'] = ", dict['School'])# 删除字典后,再引用字典会报错:TypeError: 'type' object is not subscriptable

### 字典键的特性# 字典值可以是任何python对象,既可以是标准的对象,也可以是用户自定义的对象,但键不行# 两个重要的点需要记住:# 1、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

# 2、键必须不可变,可以使用数字、字符串、元组,但键不可以使用列表!

### Python字典包含了以下内置方法:# 1、clear():'''描述:    python字典clear()方法用于清空字典内所有元素语法:    dict.clear()参数:    NA返回值:    无'''

### 直接赋值、copy()与deepcopy()的区别

Python直接赋值、浅拷贝和深拷贝的解析,可将示例与图片结合分析。

'''直接赋值:其实就是对象的引用(别名)。         当对象a的内容改变时,对象b的内容也会改变。浅拷贝(copy):拷贝父对象,不会拷贝对象内部的子对象。         当对象a的内容改变时,对象b的父对象不会改变,子对象会改变。深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝了父对象及其子对象。         当对象a的内容改变时,对象b的内容不受影响,即对象b的内容不会改变。'''

# 4、get():'''描述:    python字典get()返回指定键的值,如果键不存在则返回default设置的默认值语法:    dict.get(key, default=None)参数:    key--字典中要查找的键    default--如果指定的键不存在时,返回该默认值返回值:    返回指定的键,如果键不在字典中,返回默认值None或指定的默认值'''

# 5、in 、not in:'''描述:    python字典in操作符用于判断键是否存在于字典中,如果键在字典dict里返回True,否则返回False。    而not in操作符则刚好相反,如果键在字典dict里返回False,否则返回True语法:    key in dict    key not in dict参数:    key--要在字典中查找的键    dict--要查找的字典返回值:    如果键在字典里返回True,否则返回False'''

# 6、items():'''描述:    python字典items()方法以列表方式返回可遍历的(键, 值)元组数组。语法:    dict.items()参数:    无返回值:    返回可遍历的(键, 值)元组数组'''

dict = {'Name' : 'Runoob', 'Age' : 7}print('value: %s' % dict.items())# 7、keys():'''描述:    python3字典keys()方法返回一个可迭代对象,可以使用list()来转换为列表。    注意,python2.x是直接返回列表语法:    dict.keys()参数:    无返回值:    返回一个迭代器'''dict = {'Name' : 'Runoob', 'Age' : 7, 'Sex' : 'female'}print(dict.keys())print('字典中所有的键为:', list(dict.keys()))       # 转换为列表# 8、setdefault():'''描述:    python字典setdefault()方法和get()方法类似,    如果键不存在于字典中,将会添加键并将值设为默认值。语法:    dict.setdefault(key, default=None)参数:    key--要查找的键    default--键不存在时,设置的默认值返回值:    如果key在字典中,返回对应的值,    如果key不在字典中,则插入key并设置默认值default且返回default,default默认值为None'''dict = {'Name' : 'Runoob', 'Age' : 7}print('Age键的值为:%s' % dict.setdefault('Age', None))print('Sex键的值为:%s' % dict.setdefault('Sex', None))print('新字典为:', dict)# 9、update():'''描述:    python字典update()函数把字典参数dict2的key/value(键/值)更新到字典dict里语法:    dict.update(dict2)参数:    dict2--添加到指定字典dict里的字典返回值:    该方法没有任何返回值'''dict = {'Name' : 'Runoob', 'Age' : 7}dict2 = {'Sex' : 'female', 'Age' : 18}print('更新前的字典dict:', dict)dict.update(dict2)print('更新后的字典dict:', dict)      # 将dict2的内容更新到dict中,相同的键则进行覆盖

print('字典中所有的值为:', list(dict.values()))

# 11、pop():'''描述:    python字典pop()方法删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出,否则返回default值。语法:    pop(key[, default])参数:    key--要删除的键值    default--如果没有key,返回default值返回值:    返回被删除的值'''dict = {'Name' : '菜鸟', 'Alexa' : 10000, 'URL' : 'www.runoob.com'}print('删除键之前的字典:', dict)pop_obj = dict.pop('Name')print('删除的元素:', pop_obj)print('删除键之后的字典:', dict)pop_obj2 = dict.pop('Age', None)    # 要删除的键不存在,返回None值print(pop_obj2)# 12、popitem():'''描述:    python字典popitem()方法随机返回并删除字典中的最后一对键和值语法:    popitem()参数:    无返回值:    返回一个键值对(key, value)形式,按照LIFO(Last In First Out后进先出)顺序原则,即最末尾的键值对。'''dict = {'name' : '菜鸟', 'alexa' : 10000, 'url' : 'www.runoob.com'}print('删除之前的字典:', dict)# dict.clear()              # 清空字典后,报错KeyError: 'popitem(): dictionary is empty'pop_obj = dict.popitem()print('删除的元素:', pop_obj)print('删除之后的字典:', dict)

python修改字典键(key)的方法

间接修改键的key值方法

第一种(推荐):

第二种方法:

第三种方法:

dict.items()图解:

dict.items()、dict.keys()、dict.values()三者的区别:

Python字典推导式

字典推导式的语法格式如下:

{表达式 for 迭代变量 in 可迭代对象 [if条件表达式]} # []中内容可有可无

'''字典推导式:    自Python2.7以来,列表推导概念就移植到了字典上,从而有了字典推导'''



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有