Python中的dict

# dict
# Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

d = {‘Michael‘: 95, ‘Bob‘: 75, ‘Tracy‘: 85}
print(‘dict get Michael:‘, d[‘Michael‘])

# add a element
d[‘Adam‘] = 67
print(‘dict d‘, d)

# change a element
d[‘Adam‘] = 90
print(‘dict get "Adam" after change‘, d[‘Adam‘])

# if key not exist,there is an error of dict:(Key Error:‘Thomas‘)
# print(‘dict get an element,is not exist‘, d[‘Thomas‘])

# 避免key不存在的错误,有两种办法
# 1.通过in判断key是否存在
if ‘Thomas‘ in d:
    print(‘The key "Thomas" exist‘)
else:
    print(‘The key "Thomas" not exist‘)

# 2.通过dict提供的get方法,如果key不存在,可以返回None, 或者自己指定的value
print(‘get not exist element "Thomas"‘, d.get(‘Thomas‘))
print(‘get not exist element "Thomas"‘, d.get(‘Thomas‘, -1))

# delete an element
d.pop(‘Bob‘)
print(‘dict d after delete the element of key "Bob"‘, d)

# dict内部的存放顺序和key放入的顺序是没有关系的
# 和list比较,dict有以下几个特点:
# 1.查找和插入的速度极快,不会随着key的增加而变慢;
# 2.需要占用大量的内存,内存浪费多
# 而list相反:
# 1.查找和插入的时间随着元素的增加而增加;
# 2.占用空间小,浪费内存很少。
# 所以,dict是用空间来换取时间的一种方法。
# dict可以用在需要高速查找的很多地方,在Python代码中无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。
# 这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法。
# 要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key

# TypeError: unhashable type: ‘list‘
# key = [1, 2, 3]
# d[key] = ‘a list‘
时间: 2024-10-29 15:23:01

Python中的dict的相关文章

《python源码剖析》笔记 python中的Dict对象

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.PyDictObject对象 -->  C++ STL中的map是基于RB-tree的,搜索时间复杂度是O(logN) PyDictObject采用了hash表,时间复杂度是O(1) typedef struct{ Py_ssize_t me_hash; //me_key的hash值,避免每次查询都要重新计算一遍hash值 PyObject *me_key; PyObject *me_

《python源代码剖析》笔记 python中的Dict对象

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.PyDictObject对象 -->  C++ STL中的map是基于RB-tree的,搜索时间复杂度是O(logN) PyDictObject採用了hash表,时间复杂度是O(1) typedef struct{ Py_ssize_t me_hash; //me_key的hash值,避免每次查询都要又一次计算一遍hash值 PyObject *me_key; PyObject *me

python中的dict的详细介绍

一.dict的特性 dict是python中的一个可变的数据类型,用{}表示,dict的key必须是不可变的数据类型,而value的数据类型可以任意 格式:{key:value,key:value,key:value} 注:键值对如果是字符串使用单引号,最后一个键值对没有逗号 dict的优点: ①:查询速度快,可以二分查找 ②:key是不可以重复的 注: 不可变数据类型: 元组,bool,int , str 可以hash 可变数据类型: dict ,list, set 二.dict的方法: (1

Python中:dict(或对象)与json之间的互相转化

在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作. 在Python中自带json库.通过import json导入. 在json模块有2个方法, loads():将json数据转化成dict数据 dumps():将dict数据转化成json数据 load():读取json文件数据,转成dict数据 dump():将dict数据转化成json数据后写入json文件 下面是具体的示例: dict字典转json数据 import json def dict_to_j

python中遍历dict的value

之前提到过,在dict中,可以通过d[索引]或者d.get[索引]两种方式来获取某个key对应的value,其实,python有内置的函数,可以直接遍历dict中的value 一.d.values():这个函数可以将dict中的value全部拿出来,变成一个list,我们遍历这个list就可以拿到所有的value了 上图中,itervalues()的作用和values()一样,只是itervalues()不用生成list,比较节省内存. 二.d.items():这个函数可以将key和value一

python中字典dict的操作

字典可存储任意类型的对象,由键和值(key - value)组成.字典也叫关联数组或哈希表. dict = {'A' : 001 , 'B' : '002' , 'C' : [1 , 2 , 3] } dict['A'] = 007 # 修改字典元素 dict['D'] = (5 , 6 , 7) # 增加字典元素 del dict['A'] # 删除字典元素 del dict # 删除字典 dict.clear() # 清除字典所有元素 len(dict) # 字典元素个数 str(dict)

Python中字典dict

dict字典 字典是一种组合数据,没有顺序的组合数据,数据以键值对形式出现 # 字典的创建 # 创建空字典1 d = {} print(d) # 创建空字典2 d = dict() print(d) # 创建有值的字典, 每一组数据用冒号隔开, 每一对键值对用逗号隔开 d = {"one":1, "two":2, "three":3} print(d) # 用dict创建有内容字典1 d = dict({"one":1, &q

python中的 dict() 函数

Python 字典 dict() 函数用于创建一个新的字典,用法与 Pyhon 字典 update() 方法相似. dict() 函数函数语法: dict(key/value) 参数说明: key/value -- 用于创建字典的键/值对,此处可以表示键/值对的方法有很多,请看实例. 返回一个新的字典. 实例 以下实例展示了 dict() 函数的使用方法: # !/usr/bin/python3 dict0 = dict() # 传一个空字典 print('dict0:', dict0) dic

Python中dict详解

yangyzh Python中dict详解 python3.0以上,print函数应为print(),不存在dict.iteritems()这个函数. 在python中写中文注释会报错,这时只要在头部加上# coding=gbk即可 #字典的添加.删除.修改操作dict = {"a" : "apple", "b" : "banana", "g" : "grape", "o&qu