Python数据类型-6 字典

字典

Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值的类型也可以是其它任何数据类型!

字典的key必须是不可变的对象,例如整数、字符串、bytes和元组,但使用最多的还是字符串。 列表、字典、集合等就不可以作为key。同时,同一个字典内的key必须是唯一的,但值则不必。

字典可精确描述为不定长、可变、无序、散列的集合类型

字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,例如:

d = {key1 : value1, key2 : value2 }

创建字典
dict()函数是Python内置的创建字典的方法。

test = {}       # 创建空字典
test = {"a":'123','b':'2',"c":3}
dict([('name', 'juran'), ('age', 18), ('addr', 'cs')])
{'name': 'juran', 'age': 18, 'addr': 'cs'}

dict(a=1, b=2, jack=4098)
{'a':1,'b':2}

访问字典
字典是集合类型,不是序列类型,因此没有索引下标的概念,更没有切片的说法。但是,与list类似,字典采用把相应的键放入方括号内获取对应值的方式取值。

dic = {'Name': 'json','Age': 18}
print ("dic['Name']: ", dic['Name'])
print ("dic['Age']: ", dic['Age'])
如果访问字典里没有的键,会抛出异常:
dic['address']
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    dic["address"]
KeyError: 'address'

增加和修改
增加就是往字典插入新的键值对,修改就是给原有的键赋予新的值。由于一个key只能对应一个值,所以,多次对一个key赋值,后面的值会把前面的值冲掉。

dic = {'Name': 'json','Age': 18}
dic["address"] = "beijing"
dic["address"] = "Shanghai"
dic["Age"] = 20
dic
{'Name': 'json', 'Age': 20, 'address': 'Shanghai'}
-------------------------------------
要统计字典内键的个数,可以使用Python内置的len()函数:
len(dic)
3

删除字典元素、清空字典和删除字典
使用del关键字删除字典元素或者字典本身,使用字典的clear()方法清空字典

dic
{'Name': 'json', 'Age': 20, 'address': 'Shanghai'}
del dic['Name']     # 删除指定的键
dic
{'Age': 20, 'address': 'Shanghai'}
-------------------------------------
a = dic.pop('Age')       # 弹出并返回指定的键。必须提供参数!

20
dic.clear()       # 清空字典
del dic           # 删除字典本身

字典的重要方法

get(key)    返回指定键的值,如果值不在字典中,则返回default值
items()     以列表返回可遍历的(键, 值) 元组对
keys()  以列表返回字典所有的键
values()    以列表返回字典所有的值

接下来我们看看例子:

dic = {'Name': 'json', 'Age': 20, 'address': 'Shanghai'}
dic.get("sex")          # 访问不存在的key,没有报错
dic['sex']              # 访问不存在的key,报错。
Traceback (most recent call last):
  File "<pyshell#44>", line 1, in <module>
    dic["sex"]
KeyError: 'sex'
-------------------------------------
dic.items()
dict_items([('Name', 'json'), ('Age', 20), ('address', 'Shanghai')])
-------------------------------------
dic.values()
dict_values(['json', 20, 'Shanghai'])
-------------------------------------
dic.keys()
dict_keys(['Name', 'Age', 'address'])
-------------------------------------
dic.pop('Name')
json

遍历字典
从Python3.6开始遍历字典获得的键值对是有序的

dic = {'Name': 'Jack', 'Age': 7, 'Class': 'First'}

1  直接遍历字典获取键,根据键取值
for key in dic:
    print(key, dic[key])

2  利用items方法获取键值,速度很慢,少用!
for key,value in dic.items():
    print(key,value)

3  利用keys方法获取键
for key in dic.keys():
    print(key, dic[key])

4  利用values方法获取值,但无法获取对应的键。
for value in dic.values():
    print(value) 

原文地址:https://www.cnblogs.com/sakura579/p/12243562.html

时间: 2024-10-08 05:18:32

Python数据类型-6 字典的相关文章

Python数据类型(字典和集合)

1.5 Dictionary(字典) 在Python中,字典用放在花括号{}中一系列键-值对表示.键和值之间用冒号分隔,键-值对之间用逗号分隔. 在字典中,你想存储多少个键-值对都可以.每个键都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将任何Python对象用作字典中的值. >>> alien_0 = {'color': 'green', 'point': 5} >>> print(alien_0) {'

Python数据类型(字典)

文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, key2 : value2 } 键必须是唯一的,但值则不必. 值可以取任何数据

Python数据类型之字典

一.什么是字典 1.字典是Python中惟一的一个映射类型,有{}括起来的键值对组成, 2.字典中元素的键: 都必须是可哈希的   不可变的数据类型就可以当做字典中的键 3.字典中元素的值: 没有任何限制,什么数据类型都可以 二.字典的增删改查 1.增 dic[key]=value  直接进行添加 (key:value) (此方法也可用于修改字典) dic.setdefault(key,value) 如果键已经在字典中存在则不进行任何操作,否则就添加(key:value) 不输入value参数则

Python学习(十一) Python数据类型:字典(重要)

字典dict: 字典其实就相当于java里面的Map,用来存储键值对的.其中存储的数据时无序的. 假如有这样的数据: t1=['name','age','sex'] t2=['tom',30,'male'] 通过zip(t1,t2)可以获取到这样的数据[('name','tom'),('age',30),('sex','male')] 字典定义是通过 {}进行的. 字典是Python当中唯一的映射类型(哈希表),字段对象时可变的,但是字典对象的键必须是不可变的,并且一个字典中可以包含不通类型的键

Python数据类型之字典二.

一.基本数据类型 整数:int 字符串:str(注:\t等于一个tab键) 布尔值: bool 列表:list  列表用[] 元祖:tuple 元祖用() 字典:dict 注:所有的数据类型都存在想对应的类列里,元祖和列表功能一样,列表可以修改,元祖不能修改. 二.字典所有数据类型: 常用操作: 索引 新增 删除 键.值.键值对 循环 长度 class dict(object): """ dict() -> new empty dictionary dict(mappi

python基础数据类型之字典+集合

一.数据类型之字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的.可哈希表示key必须是不可变类型,如:数字.字符串.元组. 字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型.列表是有序的对象结合,字典是无序的对象集合.两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取. 总结:1.字

Python数据类型及其方法详解

Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知识回顾. 一.整型和长整型 整型:数据是不包含小数部分的数值型数据,比如我们所说的1.2.3.4.122,其type为"int" 长整型:也是一种数字型数据,但是一般数字很大,其type为"long" 在python2中区分整型和长整型,在32位的机器上,取值范围是-2

python数据类型整理

Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 一.序列(列表.元组和字符串) 序列中的每个元素都有自己的编号.Python中有6种内建的序列.其中列表和元组是最常见的类型.其他包括字符串.Unicode字符串.buffer对象和xrange对象.下面重点介绍下列表.元组和字符串. 1.列表 列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和元组不能. (1).创

python学习笔记--python数据类型

一.整形和浮点型 整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄.工资.成绩等等这样的数据就可以用int类型,有正整数.负整数和0,浮点型的也就是小数类型(folat)的,带小数点的 1 name='你长得真漂亮' 2 age='88' 3 print(name) 4 print(age) >>>你长得真漂亮 >>>88 二.布尔类型 什么是布尔类型,布尔类型就是真和假,只有这两种,True和Fasle,非真即假,