python中字典(Dictionary)用法实例详解

本文实例讲述了python中字典(Dictionary)用法。分享给大家供大家参考。具体分析如下:

字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成。字典的键必须是不可改变的类型,如:字符串,数字,tuple;值可以为任何python数据类型。

1、新建字典

>>> dict1={} #建立一个空字典
>>> type(dict1)
<type 'dict'>

2、增加字典元素:两种方法

>>> dict1['a']=1 #第一种
>>> dict1
{'a': 1}
#第二种:setdefault方法
>>> dict1.setdefault('b',2)
2
>>> dict1
{'a': 1, 'b': 2}

3、删除字典

#删除指定键-值对
>>> dict1
{'a': 1, 'b': 2}
>>> del dict1['a'] #也可以用pop方法,dict1.pop('a')
>>> dict1
{'b': 2}
#清空字典
>>> dict1.clear()
>>> dict1 #字典变为空了
{}
#删除字典对象
>>> del dict1
>>> dict1
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
NameError: name 'dict1' is not defined

4、字典的方法

1)get(key,default=None)

返回键值key对应的值;如果key没有在字典里,则返回default参数的值,默认为None

>>> dict1 #空的字典
{}
>>> dict1.get('a') #键‘a'在dict1中不存在,返回none
>>> dict1.get('d1','no1')  #default参数给出值'no1',所以返回'no1'
'no1'
>>> dict1['a']='no1' #插入一个新元素
>>> dict1
{'a': '1111'}
>>> dict1.get('a') #现在键'a'存在,返回其值
'1111'

2)clear 清空字典

3)has_key(key) 如果key出现在dict里则返回True;否则返回False

>>> dict1
{'a': '1111'}
>>> dict1.has_key('b')
False
>>> dict1.has_key('a')
True

4)items 返回dict的(键,值)tuple对的一个列表

>>> dict1
{'a': 'no1', 'b': '2222'}
>>> dict1.items()
[('a', 'no1'), ('b', '2222')]

5)keys 返回dict的键列表

6)values 返回dict的值列表

>>> dict1
{'a': 'no1', 'b': '2222'}
>>> dict1.keys()
['a', 'b']
>>> dict1.values()
['no1', '2222']

7)setdefault(key,default=None)

如果dict中有key,则返回key值,如果没有找到key,则在dict中加上该key,值由default参数给出,默认None

8)update(dict2)

把dict2的元素加入到dict中去,键字重复时会覆盖dict中的键值

>>> dict2
{'c': '3333', 'b': 'no2'}
>>> dict1 #dict2和dict1的键‘b'重复
{'a': 'no1', 'b': '2222'}
>>> dict1.update(dict2) #调用update后,dict1的键'b'值被覆盖了
>>> dict1
{'a': 'no1', 'c': '3333', 'b': 'no2'}

9)popitem 删除任意键-值对,并返回该键-值对,如字典为空,则产生异常

>>> dict1
{'b': 'no2'}
>>> dict1.popitem()
('b', 'no2')
>>> dict1
{}
>>> dict1.popitem()
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
KeyError: 'popitem(): dictionary is empty'

10)pop(key,[d]) 删除指定键字的键-值对,并返回该键对应的值

>>> dict1
{'a': 'no1', 'c': '3333', 'b': 'no2'}
>>> dict1.pop('a')
'no1'
>>> dict1
{'c': '3333', 'b': 'no2'}

11)copy 返回字典的一个浅拷贝

希望本文所述对大家的Python程序设计有所帮助。

(0)

相关推荐

  • python list转dict示例分享

    需求:['1:a','2:b','3:c'] 转换为 {'1′: 'a','3′: 'c','2′: ''} 复制代码 代码如下: a = {}b = ['1:a','2:b','3:c']map(lambda x:a.setdefault(x.split(':')[0], x.split(':')[1]), b)print a{'1': 'a', '3': 'c', '2': 'b'}

  • Python 列表(List)操作方法详解

    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表和元组.序列都可以进行的操作包括索引,切片,加,乘,检查成员.此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 一.创建一个列表只要把逗号分隔的不同的数据项使用方括号括起来即可.如下所示: 复制代码 代码如下: list1

  • python list 合并连接字符串的方法

    比如下面一个list 复制代码 代码如下: binfo = ['lao','wang','python'] 我们通过help方法得知,可以用string的join方法来解决. 下面我们通过空格来连接3个单词: 复制代码 代码如下: content = " ".join(binfo)print content 结果是:lao wang python

  • Python中dictionary items()系列函数的用法实例

    本文实例讲述了Python中dictionary items()系列函数的用法,对Python程序设计有很好的参考借鉴价值.具体分析如下: 先来看一个示例: import html # available only in Python 3.x def make_elements(name, value, **attrs): keyvals = [' %s="%s"' % item for item in attrs.items()] attr_str = ''.join(keyvals

  • 详解Python如何获取列表(List)的中位数

    前言 中位数是一个可将数值集合划分为相等的上下两部分的一个数值.如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数:如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数.在这个任务里,你将得到一个含有自然数的非空数组(X).你必须把它分成上下两部分,找到中位数. 输入: 一个作为数组的整数(int)列表(list)的. 输出: 数组的中位数(int, float). 示例 get_median([1, 2, 3, 4, 5]) == 3 get_media

  • Python实现list反转实例汇总

    本文实例总结了Python实现list反转的方法.分享给大家供大家参考.具体实现方法如下: 下面有几个不同实现的函数 复制代码 代码如下: import math   def resv(li):     new = []     if li:         cnt = len(li)         for i in range(cnt):             new.append(li[cnt-i-1])     return new   def resv2(li):     li.re

  • Python的“二维”字典 (two-dimension dictionary)定义与实现方法

    本文实例讲述了Python的"二维"字典 (two-dimension dictionary)定义与实现方法.分享给大家供大家参考,具体如下: Python 中的dict可以实现迅速查找.那么有没有像数组有二维数组一样,有二维的字典呢?比如我需要对两个关键词进行查找的时候.2D dict 可以通过 dict_2d = {'a': {'a': 1, 'b': 3}, 'b': {'a': 6}} 来建立,并通过 dict_2d['a']['b'] 来访问.但是添加一个新的 "k

  • python中对list去重的多种方法

    今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数.不过这个东西最终还是没用上. 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: 复制代码 代码如下: ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids:     if id not in news_ids:         news_ids.append(id) print news_ids

  • 如何将python中的List转化成dictionary

    问题1:如何将一个list转化成一个dictionary? 问题描述:比如在python中我有一个如下的list,其中奇数位置对应字典的key,偶数位置为相应的value 解决方案: 1.利用zip函数实现 2.利用循环来实现 3.利用 enumerate 函数生成index来实现 问题2 我们如何将两个list 转化成一个dictionary? 问题描述:假设你有两个list 解决方案:还是常见的zip函数 这里我们看到了zip函数确实在配对上面起到了很不错的效果,如果两个list都很大,你需

  • Python 字典(Dictionary)操作详解

    Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: 复制代码 代码如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 也可如此创建字典: 复制代码 代码如下: dict1 = { 'abc': 456 };dict2 = { 'abc': 123, 98.6: 37 }; 注意:每个键与值用冒号隔开

随机推荐