深入学习Python内置数据类型之——字典(Dictionary)

 

深入学习Python内置数据类型之——字典(Dictionary)

                                                                                                                  

 

      当我基本能从事Django框架来对网站进行开发的时候,发现对Python的知识了解得太少了,甚至到了知识匮乏的阶段。看来,我得温习一下Python知识了。

   据我个人的理解,Python中有三种内置的数据类型。dictionary(字典)List(列表)tuple(元组)。下面我将对这几个内置的数据类型进行总结。

   Dictionary(字典)

   首先,什么是字典呢?

通俗地来讲,字典无非就是很多的数据,但是它有一个目录,可以通过目录中的一个简单值来找到与之相对于的详细信息。换句话来说,目录就是内容的一个特殊标示,即目录中的每一个字段,都会在内容中有与之相对应的详细信息。也就是说,目录中的每一个信息都是唯一的,与目录中的其他信息互不冲突。

PythonDictionary不只是用于存储字符串。Dictionary的值可以是任意数据类型,包括字符串,整数,对象,甚至其它的 dictionary。在单个 dictionary, dictionary的值并不需要全都是同一数据类型,可以根据需要混用和匹配。但是Pythonkey就比较严格了,它们可以是字符串,整数(我知道的只有这两种)。也可以在一个 dictionary中混用和配匹 key的数据类型。

   定义Dictionary

dic = {"server":"apache", "database":"master"}每一个元素都是一个 key-value, 整个元素集合用大括号括起来。可以通过 key来引用其值,但是不能通过值获取 key。所以d["server"]的值为 'apache'

修改Dictionary

在一个 dictionary中不能有重复的key,但我们可以给一个存在的 key赋值,覆盖原有的值。如,我要将Dictionary dic中“server”的值改为“weblogic”,dic[server] =weblogic”。

添加key-value

添加键值对其实很简单,举个简单的例子:我要在Dictionary中添加user=root’的键值对,dic[user] = root”。

Dictionary中的常用方法:

len(a)

得到字典a中元素的个数

a[k]

取得字典a中键K所对应的值

a[k] = v

设定字典a中键k所对应的值成为v

del a[k]

使用 key从一个 dictionary中删除独立的元素。如,删除Dictionary dic中的user=root’:del dic[user]

a.clear()

从一个 dictionary中清除所有元素。如,删除Dictionary dic中的所有元素:dic.clear()

a.copy()

得到字典副本

k in a

字典中存在键k则为返回True,没有则返回False

k not in a

 字典中不存在键k则为返回true,反之返回False

a.has_key(k)

判断字典a中是否含有键k

a.items()

得到字典a中的键—值对list

a.keys()

得到字典a中键的list

a.update([b])

b字典中更新a字典,如果键相同则更新,a中不存在则追加.

a.fromkeys(seq[, value])

创建一个新的字典,其中的键来自sql,值来自value

a.values()

得到字典a中值的list

a.get(k[, x])

从字典a中取出键为k的值,如果没有,则返回x

a.setdefault(k[, x])

将键为k的值设为默认值x。如果字典a中存在k,则返回k的值,如果不存在,向字典中添加k-x键值对,并返回值x

a.pop(k[, x])

取出字典a中键k的值,并将其从字典a中删除,如果字典a中没有键k,则返回值x

a.popitem()

取出字典a中键值对,并将其从字典a中删除

a.iteritems()

返回字典a所有键-值对的迭代器。

a.iterkeys()

返回字典a所有键的迭代器。

a.itervalues()

返回字典a所有值的迭代器。

 

注意:

Dictionary中的key值是大小写敏感的。并且在同一个dictionary中不能有重复的key值。并且,Dictionary中没有元素顺序的概念。

 

操作演示代码:

>>> a = {1:'ddd','dds':'dddddddddddddd'}
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd'}
>>> a.has_key(1)
True
>>> a.items
<built-in method items of dict object at 0x01220C90>
>>> a.items()
[('dds', 'dddddddddddddd'), (1, 'ddd')]
>>> b = {2:4545}
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd'}
>>> b
{2: 4545}
>>> a.update(b)
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545}
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545}
>>> c = {2:4545,4:5656}
>>> c
{2: 4545, 4: 5656}
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545}
>>> a.update(c)
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545, 4: 5656}
>>> a.itervalues()
<dictionary-valueiterator object at 0x0121ACF0>
>>> c = a.itervalues()
>>> print c
<dictionary-valueiterator object at 0x0121ACC0>
>>> for xx in c:
	print xx

	
dddddddddddddd
ddd
4545
5656
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545, 4: 5656}
>>> a.setdefault(1,7878)
'ddd'
>>> a.setdefault(5,7878)
7878
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545, 4: 5656, 5: 7878}
>>> a.pop(2,99)
4545
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 4: 5656, 5: 7878}
>>> a.pop(6,9090)
9090
>>> a
{'dds': 'dddddddddddddd', 1: 'ddd', 4: 5656, 5: 7878}
>>> 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值