zoukankan      html  css  js  c++  java
  • (转)字典的创建方法

    在元组和列表中,都是通过编号进行元素的访问,但有的时候我们按名字进行数据甚至数据结构的访问,在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()
  • 相关阅读:
    多线程 wait和sleep区别
    什么是分布式系统,如何学习分布式系统
    Mybatis传多个参数(三种解决方案)
    UML中类之间的几种关系
    前缀、中缀、后缀表达式
    数据库连接池c3p0和dbcp
    代码收藏
    spark教程(12)-生态与原理
    spark教程(10)-sparkSQL
    spark教程(九)-操作数据库
  • 原文地址:https://www.cnblogs.com/liguangxu/p/5504057.html
Copyright © 2011-2022 走看看