• Python学习之字典详解


    转自:http://blog.csdn.net/moodytong/article/details/7647684

           在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,在c++中有map的概念,也就是映射,在python 中也提供了内置的映射类型--字典。映射其实就是一组key和value以及之间的映射函数,其特点是:key的唯一性、key与value的一对多的映射。

    1.字典的创建

          字典的基本形态dic={key1:value1, key2:value2...}

          创建方式1:直接型。

                dict1={} 

                dict2={‘name’:'earth','port':'80'}

          创建方式2:使用工厂方法dict,通过其他映射(例如字典)或者(键,值)这样的序列对建立

                items=[('name','earth'),('port','80')]

                dict2=dict(items)

                dict1=dict((['name','earth'],['port','80']))

          创建方式3:使用内建方法fromkeys()创建’默认‘字典,字典中元素具有相同的value(如果没有给出,默认为none)

                dict1={}.fromkeys(('x','y'),-1)

                #dict={'x':-1,'y':-1}

                dict2={}.fromkeys(('x','y'))

                #dict2={'x':None, 'y':None}

    2.访问字典中的值

          最常用和基本的莫过于利用key访问value了

          a.通过key访问value之get方法

               dict1.get('name')#也可以直接是dictionary['key1'],但是当key1不存在其中时,会报错;此时用get则返回None

          b.随机访问其中键值对

               字典中是无序的,利用popitem方法是随机弹出一个键值对

          c.返回字典所有值的列表

               方法values

    3.访问字典中的key

          a.检查是否含有key1

             dictionary.has_key(key1)

             key1 in dictionarty

             key1 not dictionary

          b.返回字典中键的列表

             dictionary.keys()

    4.访问键值对

          a.遍历方式

             for r in dicitonary  #r是dictionary中的键值对

          b.修改(更新)或添加

             dictionary[key1]=value1

    5.删除

          a.按key删除

             del dictionary[key1]

          b.删除并返回

             dictionary.pop(key1)

          c.删除所有项

             dictionary.clear()

             del dictionary

    6.排序

         sorted(dic.iteritems(), key=lambda d:d[1], reverse=False)

         说明:对字典dic中的元素按照d[1](d[1]是value,d[0] 是key,和d没关系,可以改为a什么的)进行升序排序,通过设置reverse的True或False可以进行逆序,并返回排序后的字典(该排序后的字典由元组组成,其形式为[(key1,value1),(key2,value2),...],且原字典保持不变)

    7.其他

          len(dictionary) #返回字典项个数

          dictionary.item()

          dictionary.iteritems()

    方法名字     操作
    dict.clear()     删除字典中所有元素
    dict.copy()     返回字典(浅复制)的一个副本
    dict.fromkeysc(seq,val=None)     创建并返回一个新字典,以seq 中的元素做该字典的键,val 做该字典中所有键对应的初始值(如果不提供此值,则默认为None)
    dict.get(key,default=None)     对字典dict 中的键key,返回它对应的值value,如果字典中不存在此键,则返回default 的值(注意,参数default 的默认值为None)
    dict.has_key(key)     如果键(key)在字典中存在,返回True,否则返回False. 在Python2.2版本引入in 和not in 后,此方法几乎已废弃不用了,但仍提供一个 可工作的接口。
    dict.items()     返回一个包含字典中(键, 值)对元组的列表
    dict.keys()     返回一个包含字典中键的列表
    dict.values()     返回一个包含字典中所有值的列表
    dict.iter()     方法iteritems(), iterkeys(), itervalues()与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表。
    dict.pop(key[, default])     和方法get()相似,如果字典中key 键存在,删除并返回dict[key],如果key 键不存在,且没有给出default 的值,引发KeyError 异常。
    dict.setdefault(key,default=None)     和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。
    dict.setdefault(key,default=None)     和方法set()相似,如果字典中不存在key 键,由dict[key]=default 为它赋值。
  • 相关阅读:
    (圆形imageview 类似qq头像)---》(ps:引用第三库APAvatarImageView>
    uiscrollerview循环滚动(参考第三方库:HMBannerView)https://github.com/iunion/autoScrollBanner
    iOS -动态可变参数
    ios-UIPickerView基本使用
    iOS 实现进度条(progress)
    @property (nonatomic, getter = isExpanded) BOOL expanded;
    linker command failed with exit code 1 (use -v to see invocation)
    APICloud界面间跳转
    iOS CGRectGetMaxY/CGRectGetMaxX
    iOS UIView常用的一些方法setNeedsDisplay和setNeedsLayout 区别
  • 原文地址:https://www.cnblogs.com/chjbbs/p/4061639.html
Copyright © 2020-2023  润新知