文档章节

Python中字典的学习

余青木
 余青木
发布于 2014/05/17 11:24
字数 544
阅读 113
收藏 5
#字典是由多个键及其对应的值构成的对组成(也叫键/值对称为项){key:value}
下例中,名字是键,电话号码是值.
所以:
    每个键和它的值之间用冒号":"隔开,项之间用逗号","隔开,而整个字典是由一对大括号括起来

    其中,键为任何不可变类型

phonebook = {'Alice':'2341','Beth':'9102','Cell':'3258'}

1.dict函数
items = [('name','Gumby'),('age',42)] #补充:items为列表(列表的各个元素通过","分隔,写在方括号中)
d = dict(items)
>>> d
{'age': 42, 'name': 'Gumby'}

第二种用法
>>> d = dict(name = 'Gumy',age = 42)
>>> d
{'age': 42, 'name': 'Gumy'}

2.基本字典操作
len(d)返回d中项(键-值对)的数量
d[k]返回关联到键k上的值
d[k] = v 将值v关联到键k上
del d[k]删除键为k的项
k in d检查d中是否含有键为k的项

3.字典和列表的区别
键类型
自动添加
成员资格(表达式k in d(d为字典)查找的是键,而不是值).表达式v in l(l为列表)则用来查找值,而不是索引)

4.深拷贝和浅拷贝(和C++的类似,(C++原理:即浅拷贝过后,仍然公用一片内存,所以对一个所做的操作,对另一个也生效。而深拷贝则是另外的一片内存)
>>> from copy import deepcopy
>>> d = {}
>>> d['names'] = ['Alfred','Bertrand']
>>> c = d.copy()
>>> dc = deepcopy(d)
>>> c
{'names': ['Alfred', 'Bertrand']}
>>> d['names'].append('Clive')
>>> c
{'names': ['Alfred', 'Bertrand', 'Clive']}
>>> dc
{'names': ['Alfred', 'Bertrand']}

5.fromkeys
        fromkeys方法使用给定的键建立新的字典,每个键默认对应的值为None
>>> {}.fromkeys(['name','age'])
{'age': None, 'name': None}
也可以直接调用dict的方法
>>> dict.fromkeys(['name','age'])
{'age': None, 'name': None}
>>> dict.fromkeys(['name','age'],'unknown')
{'age': 'unknown', 'name': 'unknown'}

6.update
        updata方法可以利用一个字典更新另一个字典.提供的字典中的项会被添加到旧的字典中,若有相同的键则会进行覆盖
>>> d = {'title':'python web site','url':'http://www.python.org'}
>>> x = {'title':'langue'}
>>> d.update(x)
>>> d
{'url': 'http://www.python.org', 'title': 'langue'}
        可以看到,由于键值'title'相同,则值被覆盖(替换)了

© 著作权归作者所有

余青木
粉丝 2
博文 20
码字总数 6510
作品 0
拉萨
私信 提问
Python教程:17个冷门但实用的小技巧

编者按:Python是机器学习的主流语言,没有之一。今年5月,它首次在PYPL排行榜上超越JAVA,成为全球第一大编程语言。而一个月后,Stack Overflow也分享了最新的编程语言浏览量统计数字,结果...

Python程序猿
2018/08/16
0
0
分分钟钟学会Python - 数据类型

数据类型 1 整型(int) 整型的长度 py2中有:int/long 在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为-...

急速奔跑中的蜗牛
05/23
0
0
手把手教你用Python爬中国电影票房数据

和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂。大部分网上的资料总是从Python语法教起,夹杂着大量Python开发的知识点,花了很多时间却始终云里雾里,不知...

急速奔跑中的蜗牛
05/22
0
0
学习笔记(10月23日) --(列表、元组、字典)

二周一次课(10月23日) 一、学习python 列表的常用方法 列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等任何东西加入到列表中,其中的元素之间没有任何关系。列表也是...

wanyang_wanyang
2018/07/03
0
0
Python 入门之基本数据类型

为什么我要学习Python这门语言呢?其实很简单,我想拓展技术面的同时,尝试更多的方向,可能最后会不了了之,谁知道呢?有可能的话,我会向爬虫和数据分析这个方向走。所以也就开始了我的Pyt...

YJK923
2018/08/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
727
9
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
2
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部