Python3字典怎样创建,如何访问字典里的�
Admin 2022-10-10 群英技术资�
在Python3�字典(dictionary ,简写为dict)是另一种可变容器模型,且可存储任意类型对象�
字典的每个键� (�key=>value
�) 对用冒号 (:) 分割,每个对之间用逗号 (,) 分割,整个字典包括在花括� (�{}
�) � ,格式如下所示:
dict = {key1 : value1, key2 : value2 }
key(键� | value(值) |
'Alice' | '2341' |
'Beth' | '9102' |
'Cecil' | '3258' |
'Danna' | '2341' |
'Steven' | '5643' |
键必须是唯一�,但值则不必(上表中Danna和Alice的键是不同的,值却是相同的)�
值可以取任何数据类型,但�键必须是不可变的�,如字符串,数字或元组�
一个简单的字典实例�
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
也可如此创建字典�
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
与列表取值类似,但列表取值时使用索引,字典取值时使用key,如下实�:
#!/usr/bin/python3
dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
尝试一�
以上实例输出结果�
dict['Name']: W3CSchool
dict['Age']: 7
如果用字典里没有的键访问数据,会输出错误如下�
#!/usr/bin/python3
dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'}
print ("dict['Alice']: ", dict['Alice'])
尝试一�
以上实例输出结果�
Traceback (most recent call last):
File "test.py", line 5, in <module>
print ("dict['Alice']: ", dict['Alice'])
KeyError: 'Alice'
向字典添加新内容的方法是增加新的�/值对,修改或删除已有�/值对如下实例:
#!/usr/bin/python3
dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # 更新 Age
dict['School'] = "W3Cschool教程" # 添加信息
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
尝试一�
以上实例输出结果�
dict['Age']: 8
dict['School']: W3Cschool教程
�del
能删单一的元素也能清空字典。我们可以用它来删除字典中的一组键值对也可以用来删除整个字典。另外使用clear()也能删除字典。如下实例:
#!/usr/bin/python3
dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 删除� 'Name'
dict.clear() # 删除字典
del dict # 删除字典
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
尝试一�
但这会引发一个异常,因为用执� del 操作后字典不再存在:
Traceback (most recent call last):
File "test.py", line 9, in <module>
print ("dict['Age']: ", dict['Age'])
TypeError: 'type' object is not subscriptable
注:clear() 方法后面也会讨论�
字典值可以没有限制地取任� Python 对象,既可以是标准的对象,也可以是用户定义的,但键不行�
两个重要的点需要记住:
1)不允许同一个键出现两次�创建时如果同一个键被赋值两次,后一个值会被记�,如下实例:
#!/usr/bin/python3
dict = {'Name': 'W3CSchool', 'Age': 7, 'Name': '编程�'}
print ("dict['Name']: ", dict['Name'])
尝试一�
以上实例输出结果�
dict['Name']: 编程�
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例�
#!/usr/bin/python3
dict = {['Name']: 'W3CSchool', 'Age': 7}
print ("dict['Name']: ", dict['Name'])
尝试一�
以上实例输出结果�
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'W3CSchool', 'Age': 7}
TypeError: unhashable type: 'list'
注:为了便于理解,本文的所有字典都采用了dict或者带编号的dict作为变量,但在实际开发中并不推荐这么做!也不推荐使用简单的变量名(比如d,x,a1之类的),变量名应该具有自注释性,让开发者一眼就能知道这个变量是用来做什么的�
Python 字典包含了以下内置函数:
序号 | 函数及描� | 实例 |
---|---|---|
1 | len(dict) 计算字典元素个数,即键的总数� |
>>> dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'} >>> len(dict) 3 |
2 | str(dict) 以字符串的形式输出字典(字符串可打印,字典不可打印)� |
>>> dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'} >>> str(dict) "{'Name': 'W3CSchool', 'Class': 'First', 'Age': 7}" |
3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型� |
>>> dict = {'Name': 'W3CSchool', 'Age': 7, 'Class': 'First'} >>> type(dict) <class 'dict'> |
Python 字典包含了以下内置方法:
序号 | 函数及描� |
---|---|
1 | radiansdict.clear() 删除字典内所有元� |
2 | radiansdict.copy() 返回一个字典的浅复� |
3 | radiansdict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始� |
4 | radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default� |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | radiansdict.items() 以列表返回可遍历�(�, �) 元组数组 |
7 | radiansdict.keys() 以列表返回一个字典所有的� |
8 | radiansdict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | radiansdict.update(dict2) 把字典dict2的键/值对更新到dict� |
10 | radiansdict.values() 以列表返回字典中的所有� |
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容�
猜你喜欢
这篇文章主要为大家介绍了python神经网络MobileNetV3 large模型的复现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加�
这篇文章主要介绍了Python 第三方opencv库实现图像分割处理,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一�
本篇文章给大家带来了关于Python的相关知识,主要介绍了python正则表达式如何实现重叠匹配,具有很好的参考价值,下面一起来看一下,希望对大家有帮助�
本文详细讲解了Python文件操作的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了Python3中对range()逆序的解释,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐�
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所�
增值电信经营许可证 : B1.B2-20140078