您的位置:首页 > 编程语言 > Python开发

字典

2014-02-25 08:39 190 查看
1、创建和使用字典

    1.1、dict函数:通过其他映射(比如其他字典)或者(键,值)这样的序列对建立字典,

         类似于list,tuple、str等

        >>> phonebook = {'xiaoming':'1234', 'xiaohong':'3455'}

        >>> phonebook

           {'xiaoming': '1234', 'xiaohong': '3455'}

        >>> phonebook = dict([('xiaoming','1234'), ('xiaohong',3455)])//通过序列

        >>> phonebook

           {'xiaoming': '1234', 'xiaohong': 3455}

        >>> phonebook = dict(xiaoming = 1234,xiaohong = 3455)

        >>> phonebook

           {'xiaoming': 1234, 'xiaohong': 3455}

    1.2、字典基本操作

         len(d):返回d中项(键值对)的数量

         d[k]    :返回关联到键k上的值

         d[k]=v  :把值v关联到键k上

         del d[k]:删除键为k的项

         k in d  :检查d中是否有含有键为k的项

         字典的特殊之处:

         1.2.1、键类型:字典的键不一定为整型数据(但也可以是),也可能是其他不可变类型,

                        比如浮点型(实型)、字符串或者元组。

                自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字

                        典就会建立新的项,而(不在使用append方法或者其他类似的操作的情

                        况下)不能将值关联到列表范围之外的索引上。

                成员资格:表达式k in d 查找的是键,而不是值,表达式v in l(l为列表)则用来

                         查找值,而不是索引,这样看起来好像不太一致,但是习惯以后就会感觉

                         非常自然了。毕竟,如果字典含有指定的键,查找相应的值也是很容易的。

         1.2.2、举例:

                >>> x = []

                >>> x[42]='xiaohong'

                    Traceback (most recent call last):

                     File "<stdin>", line 1, in <module>

                    IndexError: list assignment index out of range

                >>> x={}

                >>> x[42]='xiaohong'

                >>> x

                   {42: 'xiaohong'}

    1.3、字典的格式化字符串

         >>> phonebook={'xiaoming':1234, 'xiaohong':3455}

         >>> "xiaohong's phone num is %(xiaohong)s" % phonebook

             "xiaohong's phone num is 3455"

    1.4、字典方法

        1.4.1、clear:清空字典,原地操作,无返回值

               >>> x={}

               >>> y=x

               >>> x['key']='value'

               >>> y

                  {'key': 'value'}

               >>> x={}

               >>> y

                  {'key': 'value'}

               >>> x.clear()

               >>> y

                  {'key': 'value'}

               >>> x=y

               >>> x

                  {'key': 'value'}

               >>> y.clear()

               >>> x 

                  {}

        1.4.2、copy:这个方法实现的是浅拷贝,还有个深拷贝:

                from copy import deepcopy

        1.4.3、fromkeys:使用给定的键建立新的字典,每个键默认对应的值为None,也可自己规定默认值

               >>> dict.fromkeys(['xiaoming','xiaohong'],'(unknown)')

                   {'xiaoming': '(unknown)', 'xiaohong': '(unknown)'}

               >>> dict.fromkeys(['xiaoming','xiaohong'])

                   {'xiaoming': None, 'xiaohong': None}

        1.4.4、get:更宽松的访问字典项的方法,一般来说,如果试图访问字典中不存在的项时会出错

               >>> d[name]

                   Traceback (most recent call last):

                    File "<stdin>", line 1, in <module>

                   NameError: name 'name' is not defined

               >>> print d.get('name')

                   None

        1.4.5、has_key:检查字典中是否含有某个键

        1.4.6、items和iteritems:items方法把所有的字典以列表方式返回,这些列表项中每一项都来自于

               (键,值)。但是项在返回时并没有特殊的顺序

               >>> d = dict(xiaoming='12345',xiaohong='2355')

               >>> d

                   {'xiaoming': '12345', 'xiaohong': '2355'}

               >>> d.items()

                   [('xiaoming', '12345'), ('xiaohong', '2355')]

               >>> it=d.iteritems()

               >>> it

                  <dictionary-itemiterator object at 0xb7cbb920>

               >>> list(it)

                   [('xiaoming', '12345'), ('xiaohong', '2355')]

        1.4.7、keys和iterkeys:keys方法将字典中的键以列表的方式返回,而iterkeys则返回针对键的迭代器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python