2019-03-07

字典(dict):

(1)字典用大括号({})定义,字典由多个键及其对应的值组合而成,每一对键值组合称为项。

(2)字典的键唯一,但是值可以是任何(不可变的)数据类型(整型,字符串,元组等)

(3)字典是Python中唯一的映射类型,字典不是序列,在字典中为一个不存在的位置赋值的时候,会自动创建相应的键并添加对应的值进去。

(4)创建字典:

  ① 空字典:用一个大括号即可。

  测试代码:

  1. empty = {}
  2.  
  3. print(empty)
    print(type(empty))

  运行结果:

{}
<class 'dict'>

  ② dict()函数创建字典。该函数的参数可以是一个序列(不能是多个),要打包成一个元组(列表)序列。

  测试代码:

  1. dict2 = dict((('name','李白'),('age',70),('salary',2000)))
  2.  
  3. print(dict2)

  运行结果:

  1. {'name': '李白', 'age': 70, 'salary': 2000}

  ③ 提供dict()函数具有映射关系的参数来创建字典。注意:键的位置上不能加上字符串的引号,否则会报错。

  测试代码:

  1. dict3 = dict(name = '李白',age = 70, salary = 2000)
    print(dict3)

  运行结果:

  1. {'name': '李白', 'age': 70, 'salary': 2000}

  ④ 直接给已有字典的键赋值,如果键存在,则改写键对应的值,如果不存在,则创建一个新的键并赋值。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
    pets[3] = "salary"
    pets[4] = 20000
    print(pets)

  运行结果:

  1. {1: 'name', 2: 'age', 3: 'salary', 4: 20000}

(5)内置方法:

  ① fromkeys():创建并返回一个新的字典,有两个参数,第一个参数是字典的键,第二个参数是可选的,是传入键对应的值(如果没有值,默认值是none)。

  测试代码:

  1. dict4 = {}
    test = dict4.fromkeys((1,2,3),"name")
    test2 = dict4.fromkeys((1,2,3))
    print(test)
    print(test2)

  运行结果:

{1: 'name', 2: 'name', 3: 'name'}
{1: None, 2: None, 3: None}

  ② keys():返回字典中的键。values():返回字典中所有的值。Items():返回字典中所有的键值对。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
    print(pets.keys())
    print(pets.values())
    print(pets.items())

  运行结果:

dict_keys([1, 2, 3])
dict_values(['name', 'age', 'agender'])
dict_items([(1, 'name'), (2, 'age'), (3, 'agender')])

  ③ get():访问字典,当键不存在的时候,不会报错,会返回一个none。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
  2.  
  3. test = pets.get(2)
    test2 = pets.get(4)
    print(test)
    print(test2)

  运行结果:

age
None

  ④ 成员资格操作符In ,not in可以判断一个键是否存在字典中。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
  2.  
  3. print(1 in pets)
    print(1 not in pets)
    print(5 in pets)

  运行结果:

True
False
False

  ⑤ clear():清空一个字典。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
  2.  
  3. print(pets)
    pets.clear()
    print(pets)

  运行结果:

{1: 'name', 2: 'age', 3: 'agender'}
{}

  ⑥ pop():给定键弹出对应的值。 popitem():随机弹出一个键值对。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
  2.  
  3. test = pets.pop(1)
    print(1,test)
    print(2,pets)
  4.  
  5. test2 = pets.popitem()
    print(3,test2)
    print(4,pets)

  运行结果:

1 name
2 {2: 'age', 3: 'agender'}
3 (3, 'agender')
4 {2: 'age'}

  ⑦ setdefault():访问字典,在字典中找不到相应的键时会自动添加。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
    a = pets.setdefault(2)
    b = pets.setdefault(5)
    print(a)
    print(b)

  运行结果:

age
None

  ⑧ update():更新字典。

  测试代码:

  1. pets = {1:"name",2:"age",3:"agender"}
    pets.update({1:"sda "})
    pets.update(sun= "10000 ")
    print(pets)

  运行结果:

{1: 'sda ', 2: 'age', 3: 'agender', 'sun': '10000 '}

Python学习笔记(7)字典的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. Python学习笔记之字典

    一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...

  3. 【Python学习笔记】字典操作

    字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个 ...

  4. Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...

  5. python学习笔记八——字典的方法

    4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...

  6. python学习笔记七——字典

    4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...

  7. python学习笔记(字典乱码)

    博主总结下 python中字典中包含中文时,使用过程中出现乱码 json.dumps(params, encoding="UTF-8", ensure_ascii=False) p ...

  8. Python学习笔记3(字典)

    创建字典 dict函数 字典的格式化字符串 字典方法 clear copy fromkeys 序列是一个按照一定顺序将值进行组织的数据结构形式,可以通过索引对其进行征引.另外还有一种数据结构是通过名字 ...

  9. python学习笔记(6)——字典(Dictionary)

    dict= {key1 : value1, key2 : value2 ...} 关键词:字典中元素成对出现- key:value 格式- 两端{ } ,键:值,每对键值间用 ,隔开. 键key-唯一 ...

  10. python学习笔记(三)---字典

    字典 在Python中,字典 字典 是一系列键 键-值对 值对 .每个键 键 都与一个值相关联,你可以使用键来访问与之相关联的值.与键相关联的值可以是数字.字符串.列表乃至字典.事实上,可将 任何Py ...

随机推荐

  1. PHP 使用 Kafka 安装拾遗

    最近项目开发中需要使用 Kafka 消息队列.经过检索,PHP下面有通用的两种方式来调用 Kafka . php-rdkafka 扩展 以 PHP 扩展的形式进行使用是非常高效的.另外,该项目也提供了 ...

  2. 在 vue-test-utils 中 mock 全局对象

    vue-test-utils 提供了一种 mock 掉 Vue.prototype 的简单方式,不但对测试用例适用,也可以为所有测试设置默认的 mock. mocks 加载选项 mocks 加载选项 ...

  3. MongoDB记录(坑在末尾)

    Mongo数据库基本配置 基本配置 密码配置 pymongo认证 参考资料 基本配置 基本配置包括 1.端口号:默认27017,安全性较低 2.数据库文件位置 3.日志文件位置 4.日志写入模式 5. ...

  4. django-5-自定义模板过滤器及标签

    <<<代码布局(自定义的代码放哪里)>>> (1)某个app特有的  1.一般放app目录下 固定名为templatetags 的python文件夹里鸭,如果是别的 ...

  5. python第一周:python初识、流程控制

    编译性语言:在将源代码编译完毕生成一个可执行文件后才能运行 解释性语言:在代码的运行期间进行编译 动态类型语言:在运行期间才去做数据检查的语言,也就是说在使用动态类型语言时不用指定数据类型 静态类型语 ...

  6. redis-ubuntu环境下安装

    ubuntu环境下联网安装 进去系统后,首先修改root的密码 命令 sudo passwd 设置新的密码:XXX 切换为root操作 $ wget http://download.redis.io/ ...

  7. [SharePoint2010开发入门经典]一、SPS2010介绍

    本章概要: 1.熟悉SPS基本特性 2.理解SPS基础架构 3.开发SPS工具

  8. cocos2D(六)----CCLayer

    一个游戏中能够有非常多个场景,每一个场景里面又可能包括有多个图层,这里的图层一般就是CCLayer对象.CCLayer本身差点儿没什么功能.对照CCNode,CCLayer可用于接收触摸和加速计输入. ...

  9. 经验总结21--抓取WEB数据,汇率,HtmlAgilityPack

    网上找了非常多资料,PHP的比較多,然后找到有csv文件的.处理起来非常麻烦,国外的站点速度非常慢. 最后还是去页面上抓取数据,我是从中国银行抓取的,各位可去其它站点抓取. 1.模拟请求URL. st ...

  10. GO语言UDP小笔记

    <pre style="margin-top: 0px; margin-bottom: 0px;"><span style=" color:#0000f ...