一.字典的创建
1.可以直接用键值对进行创建:
>>> d_test={"abc":"123","bcd":"456","cde":"789"}
>>> d_test
{'bcd': '456', 'cde': '789', 'abc': '123'}
2.利用dict函数生成字典
>>> item=[('abc',123),('bcd',456),('cde',567)]
>>> d_test2=dict(item)
>>> d_test2
{'bcd': 456, 'cde': 567, 'abc': 123}
>>> d_test3 = dict(abc=123,bcd=456,cde=789)
>>> d_test3
{'bcd': 456, 'cde': 789, 'abc': 123}
>>> d_test3 = dict('abc'=123,'bcd'=456)
File "<stdin>", line 1
SyntaxError: keyword can't be an expression
注意:如果按照例子中item方式生成字典,string类型一定要引号,如果按照下面的创建字典一定要不要加引号,否则会报错
二.字典的基本操作:
d_test是一个字典
len(d_test3) 返回字典d中键值对的数量
>>> len(d_test3)
3
d_test[k]返回关联到键k上的值,k值如果不存在时候,会报异常
>>> d_test3['abc']
123
>>> d_test3['123']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '123'
d_test[k]=val 是把val值关联到键k上,若是不存在,添加
>>> d_test3['abc']='abc'
>>> d_test3
{'bcd': 456, 'cde': 789, 'abc': 'abc'}
>>> d_test3['xyz']=123
>>> d_test3
{'bcd': 456, 'cde': 789, 'xyz': 123, 'abc': 'abc'}
del d_test[k] 删除键为K的项,若不存在,报错:
>>> del d_test3['xyz']
>>> d_test3
{'bcd': 456, 'cde': 789, 'abc': 'abc'}
>>> del d_test3['xyz']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'xyz'
三.字典对象的方法
1.clear清除方法,清除字典中的所有项,没有返回值。
>>> d_test3.clear()
>>> d_test3
{}
2.copy复制方法,复制的方法两个对象各自作修改,对复制的对象或元对象都没有影响,只对本身的对象有影响
>>> d_test3 = dict(abc=123,bcd=456,cde=789)
>>> d_test4=d_test3.copy();
>>> d_test4['abc']=456
>>> d_test4
{'bcd': 456, 'cde': 789, 'abc': 456}
>>> d_test3
{'bcd': 456, 'cde': 789, 'abc': 123}
>>> d_test3['abc']='dtest3'
>>> d_test3
{'bcd': 456, 'cde': 789, 'abc': 'dtest3'}
>>> d_test4
{'bcd': 456, 'cde': 789, 'abc': 456}
以上复制被称为浅复制:还有深复制。深复制确切不是说字典的方法。不过也可以看一下。以下例子可以看出当深复制修改的值是原子类型(数字,字符串)等,深复制和浅复制是没有什么变化的,当修改对象为序列等复杂对象的时候,深复制不会随着原对象的改变而改变,而copy方法就会进行改变
>>> d_test3 = dict(abc=123,bcd=456,cde=[789,123,456])
>>> from copy import deepcopy
>>> d_test4=d_test3.copy()
>>> d_test4
{'bcd': 456, 'cde': [789, 123, 456], 'abc': 123}
>>> d_test5=deepcopy(d_test3)
>>> d_test5
{'bcd': 456, 'cde': [789, 123, 456], 'abc': 123}
>>> d_test3['abc']='test3'
>>> d_test5
{'bcd': 456, 'cde': [789, 123, 456], 'abc': 123}
>>> d_test4
{'bcd': 456, 'cde': [789, 123, 456], 'abc': 123}
>>> d_test3
{'bcd': 456, 'cde': [789, 123, 456], 'abc': 'test3'}
>>> d_test3['cde'].remove(123)
>>> d_test3
{'bcd': 456, 'cde': [789, 456], 'abc': 'test3'}
>>> d_test4
{'bcd': 456, 'cde': [789, 456], 'abc': 123}
>>> d_test5
{'bcd': 456, 'cde': [789, 123, 456], 'abc': 123}
3.get和setdefault方法:
get:当K值存在的时候。字典[K]取值的方法和get方法相同的,但是get(K)不存在,不会报异常,默认返回none值,也可以是设定值。
setdefault,当key存在的时候,返回key对象,当key不存在可以设置对象。注意,改变字典对象
>>> d_test3 = dict(abc=123,bcd=456,cde=[789,123,456])
>>> d_test3.get('abc')
'123'
>>> d_test3.get('abcd')
>>> d_test3.get('abcd','hello')
'hello'
>>> d_test.setdefault('cde','123')
'789'
>>> d_test
{'bcd': '456', 'cde': '789', 'abc': '123'}
>>> d_test.setdefault('cdee','123')
'123'
>>> d_test
{'bcd': '456', 'cde': '789', 'abc': '123', 'cdee': '123'}
4.fromkeys方法:默认可以新建一个字典,且key指定的值,键默认值为none,也可以进行指定
5.has_key:判断K是否存在,返回boolean类型
6迭代对象:
a.items和iteritems
items:把字典中的对象以列表的形式返回,列表中的每个对象的为(键,值)
iteritems:返回字典的迭代器对象,而不是一个列表
>>> d_test.items()
[('bcd', '456'), ('cde', '789'), ('abc', '123')]
>>> it=d_test.iteritems()
>>> list(it)
[('bcd', '456'), ('cde', '789'), ('abc', '123')]
b.keys和iterkeys
与items相似,不过只返回键的对象
>>> d_test.keys()
['bcd', 'cde', 'abc']
>>> keyit=d_test.iterkeys()
>>> list(keyit)
['bcd', 'cde', 'abc']
c.values和itervalues:和keys和iterkeys对象类似。
7.移除
pop可以移除指定的key,及和这个key关联的对象。注意:当key不存在的时候,就会报异常
popitem移除字典中随机一个对象
8.修改
利用update方法,可以用一个字典修改另一个字典。注意:更新格式:字典1.update(字典2),字典2中的key存在字典1中的时候,字典1中key所对应的值修改成字典2中key所绑定的值
若key不存在,就会添加到字典1
>>> d_test1={'abc':'abc'}
>>> d_test.update(d_test1)
>>> d_test
{'bcd': '456', 'cde': '789', 'abc': 'abc'}
>>> d_test1
{'abc': 'abc'}
>>> d_test2={'abcc':'abc'}
>>> d_test.update(d_test2)
>>> d_test
{'bcd': '456', 'cde': '789', 'abc': 'abc', 'abcc': 'abc'}
分享到:
相关推荐
python学习笔记,包含python字典-集合-不可变集合-赋值机制
要将Python中的字典导出为表格,可以按照以下描述进行操作: 导入所需模块:首先,导入所需的模块,例如pandas、openpyxl等。这些模块提供了处理和操作表格数据的功能。 创建表格对象:使用相应的模块创建一个表格...
字典数据结构的基准测试: hash tables, maps, tries等
Title: Python 字典和列表陷阱Python 中有三个非常好用的数据结构,列表,元组和字典,元组是不可变的,列表可以保存任意类型的Python对象,并
第七章 Python字典和集合 字典的表示 字典的使用 1 2 5 字典的遍历和嵌套 集合的表示和使用 4 字典的相关方法 3 第7章-python字典和集合-python基础-快速入门-课件教程全文共31页,当前为第1页。 1 字典的表示 ...
python-opencv获取二值图像轮廓及中心点坐标代码: groundtruth = cv2.imread(groundtruth_path)[:, :, 0] h1, w1 = groundtruth.shape contours, cnt = cv2.findContours(groundtruth.copy(), cv2.RETR_EXTERNAL, ...
Python程序设计 5.1 列表与元组 5.2 字典 5.3 集合 等考二级python-第5章-组合数据类型全文共57页,当前为第3页。 Python程序设计 序列类型定义 序列处理函数及方法 列表类型及操作 元组类型及操作 序列类型应用...
python入门-11-字典的总结.ev4.rar
第二周-第12章节-Python3.5-字典的使用.avi
python--列表、字典、字符串(csdn)————程序
python教程-01-字典的应用场景.ev4.rar
python教程-03-字典常用操作之新增.ev4.rar
基础篇12-python基本数据结构-字典,本视频讲解了字典的用法
在本文中,我们将介绍Python字典的一些常用方法。 1. 创建字典 在Python中,可以使用大括号{}或dict()函数来创建一个字典。例如: ``` # 使用大括号创建字典 my_dict = {'name': 'Alice', 'age': 25, 'city': 'New ...
具有递归点符号访问的Python字典
本章的目标是熟知 Python 数据类型,尤其是熟知列表和字典的运用。 第4章 Python 数据类型 Python基础教程-第4章-Python-数据类型全文共70页,当前为第2页。 第4章 Python数据类型 学习目标 1.了解序列的含义,掌握...
python入门-10-字典的循环遍历之键值对(拆包).ev4.rar
它们是所有Python代码最核心也是最重要的一部分,包括整型、浮点型、字符串、布尔型、元组、列表和字典。每一种类型都有自己的特殊特征,并服务于不同的目的。 整型(int)是一种不可变的数据类型,一般指的是一个...
1-3-Python语言 1-4-Python开发环境配置 1-5-基本程序设计方法 1-6-理解问题的计算部分 1-7-温度转换程序实例 2-1-Python程序元素分析 2-2-程序编写模板 2-3-turtle库和蟒蛇绘制程序 2-4-蟒蛇绘制程序分析 2-5-函数...
1-3-Python语言 1-4-Python开发环境配置 1-5-基本程序设计方法 1-6-理解问题的计算部分 1-7-温度转换程序实例 2-1-Python程序元素分析 2-2-程序编写模板 2-3-turtle库和蟒蛇绘制程序 2-4-蟒蛇绘制程序分析 2-5-函数...