Python学习笔记(五):字典dict

原创 2018年04月15日 00:47:00

一、定义

字典由key和value组成,定义方式

{key1:value1, key2:value2,...}

二、操作及特性

1.常用的操作是通过key来访问value

print({'a':'姓名', 'b':'年龄', 'c':'性别', 'd':'成绩'}['c'])

运行结果:

性别

2.字典中的key是不能重复的

print({'a':'姓名', 'a':'年龄', 'c':'性别', 'd':'成绩'}['a'])

运行结果:

年龄

注:虽然以上代码运行没有报错,但是字典里的key是不可重复的

print({'a':'姓名', 'a':'年龄', 'c':'性别', 'd':'成绩'})

运行结果为

{'a': '年龄', 'c': '性别', 'd': '成绩'}

'a': '年龄'被覆盖

3.字典的key可以是数字

print({'1':'姓名', 1:'年龄', 'c':'性别', 'd':'成绩'})

{'1': '姓名', 1: '年龄', 'c': '性别', 'd': '成绩'}

注:字符串'1'与数字1,因为类型不同,所以不算重复的key

4.字典的value类型可以是任意类型,包括:str、int、float、list、set、dict等

print({'a':'姓名','b':1,'c':[1,2,3],'d':(4,5,6),'e':{1:'hi',2:'hello'}})

运行结果:

{'a': '姓名', 'b': 1, 'c': [1, 2, 3], 'd': (4, 5, 6), 'e': {1: 'hi', 2: 'hello'}}

5.字典的key必须是不可变类型

1)key是列表时

print({[1,2]:"你好",'a':2})

运行报错:

    print({[1,2]:"你好",'a':2})

TypeError: unhashable type: 'list'

报错原因:[1,2]是列表,列表是可变类型,所以报错

2)当key是一个元组时

print({(1,2):"你好",'a':2})
print({(1,2):"你好",'a':2}[(1,2)])

运行结果:

{(1, 2): '你好', 'a': 2}

你好

3)注:集合也是个可变类型,同样不能作为key来用

print({{'a':1}:'key是一个集合', (1,2):"key是一个元组"})

报错:

    print({{'a':1}:'key是一个集合', (1,2):"key是一个元组"})

TypeError: unhashable type: 'dict'

三、定义一个空的dict,使用{}

print(type({}))

运行结果:

<class 'dict'>

[python]遍历字典dict的几种方法

脚本: #!/usr/bin/python dict={"a":"apple","b":"banana","o":"orange"}  print "##########dict##########...
  • cn_wk
  • cn_wk
  • 2016-03-28 10:44:02
  • 35327

Python中dict字典使用方法

Dictionary 是 Python 的内置数据类型之一,它定义了键和值之间一对一的关系。 一、dict字典有很多常用的函数 dict.clear() 删除字典中所有元素 dict.copy() 返...
  • maoersong
  • maoersong
  • 2014-03-23 11:08:41
  • 16904

Python中字典(dict)详解

python字典:   一个映射对象将可散列的值映射到任意对象。映射类型是可变的对象。当前只有一种标准的映射类型,即字典。用作键值的数字类型遵循正常的数值比较规则:如果两个数是相等的(例如1和1.0...
  • jeryjeryjery
  • jeryjeryjery
  • 2017-05-26 17:33:20
  • 2786

python生成嵌套字典

根据传入带分隔符的Key与value生成对应的嵌套字典 方法一:k1, v1 = 'a.b.c', 1 def nested_dict(k, v): key_list = k.split('...
  • chinacmt
  • chinacmt
  • 2016-07-20 10:14:40
  • 3098

python读取和存储dict()与.json格式文件

这篇是不是用markdown格式写的,显示代码不太友好,csdn又不支持在原文上直接修改编辑格式,因此在markdown格式下重新将此文编辑了一遍,且內容有更新,点击即可 : http://blog....
  • qq_23926575
  • qq_23926575
  • 2016-11-06 14:21:26
  • 16990

Python - 字典(dict)删除元素

字典(dict)删除元素, 可以选择两种方式, dict.pop(key)和del dict[key].代码# -*- coding: utf-8 -*- def remove_key(d, key)...
  • u012515223
  • u012515223
  • 2015-07-25 21:37:51
  • 42013

如果实现python字典的只读, 考虑字典内容有list, dict的嵌套问题

下面代码并没有实现, 预留后续继续研究: 1. 完全模拟字典行为 2. 只读 3. 特别的在遍历,嵌套上面需考虑 class _CfgData(object): """配置数据,主要为了实现类...
  • yl0706401049
  • yl0706401049
  • 2016-06-23 17:15:55
  • 1221

python dict 字典 以及 赋值 引用的一些小实验

最近在做一个很大的数据库方面的东东,要用到根据数值来查找,于是想到了python中的字典,平时没用过dict这个东东 用的最多的还是 list 和 tuple (网上查 用法一大堆) 看了一下创建...
  • qwerty_xk
  • qwerty_xk
  • 2013-06-23 14:26:47
  • 14952

python 使用zip反转字典

结合使用zip()和dict()可以很方便的反转字典(交换键值对的位置),示例如下: >>> d = {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> d {'a': 1, '...
  • sxingming
  • sxingming
  • 2016-06-25 15:08:18
  • 3861

python 中构建字典 dict 的几种方式

1、直接创建方法一: temp = {} temp['name'] = 'xiaoming'方法二: temp = dict() temp['name'] = 'xiaoming'2、dict() ...
  • youzi_yun
  • youzi_yun
  • 2017-12-31 21:54:29
  • 171
收藏助手
不良信息举报
您举报文章:Python学习笔记(五):字典dict
举报原因:
原因补充:

(最多只允许输入30个字)