zoukankan      html  css  js  c++  java
  • Python基础14 字典的创建修改访问和遍历 popitem() keys() values() items()

      1 #字典
      2 
      3 #字典是可变的,可迭代的一种数据结构
      4 #字典结构分为两个部分组成
      5 #key 键视图  value 值视图
      6 #key不能包括有重复的数据,但是value可以
      7 
      8 #创建字典
      9 #用dict()来创建或者用{:}来创建
     10 
     11 a=dict({1:"",2:"",3:"",4:"",5:"",6:""});
     12 #这样我们就建立了一个key和value对应的字典
     13 print(a);
     14 
     15 b={1:"",2:""};
     16 #这样也创建了一个字典
     17 print(b);
     18 
     19 #也可以用元组组合来创建一个字典
     20 t1=(1,"?");
     21 t2=(2,"!");
     22 t3=(3,"@");
     23 t4=(4,"#");
     24 t_all=(t1,t2,t3);
     25 print("t1={0}
    t2={1}
    t3={2}
    ".format(t_all[0],t_all[1],t_all[2]));
     26 #这样我们就组成了一个由三个规则的元组组成的大元组
     27 #而这个大的元组,是存在迭代性的
     28 #这就可以用dict(iterable);
     29 c=dict(t_all);
     30 print(c);
     31 #这样就通过元组生成了一个字典
     32 
     33 #那么列表是否也有这种性质呢?
     34 l1=[1,"列表"];
     35 l2=[2,"牌面"];
     36 l_all=[l1,l2];
     37 print("l1={0}
    l2={1}
    ".format(l_all[0],l_all[1]));
     38 d=dict(l_all);
     39 print(d);
     40 #可以发现,列表也是可以完成这个操作的
     41 
     42 #还有一种比较特殊的创建方法
     43 #但是它只能创建字符串类型的字典
     44 #dict(key=value );
     45 #这样的形式,而且key必须是字符串类型
     46 
     47 e=dict(cc="ddd",dd="eee" );
     48 print(e);
     49 #而且要注意的是
     50 #key是字符串类型,但是不能加上单引号或者双引号
     51 
     52 #比较鸡肋的是如果你想输入的key是数字型字符串
     53 #那么你必然不会成功
     54 #e=dict(100="ddd",200="eee");
     55 #这样的式子,他不会认为是字符串,而是认为是数字数据
     56 e=dict(s100 ="dssdd",s200="eddee");
     57 #而只有这样子才能被识别成字符串
     58 print(e);
     59 
     60 print("/////////////////////////////////");
     61 
     62 #修改字典
     63 #最简单的方法
     64 #直接利用字典给出的索引来修改
     65 
     66 f={10:"100",20:"C",30:40};
     67 print(f);
     68 f[10]="";
     69 print(f);
     70 #这里就知道key10对应value被改变了
     71 
     72 #通过del也可以删除字典的键值对
     73 del f[20];
     74 #但是要注意,del不是函数而是一个语句
     75 #但是如果没有找到删除的值,就会抛出异常
     76 #del f[20];
     77 
     78 #pop(key,value)
     79 #这里也可以使用pop()来删除
     80 #返还值依然是删除的值 value
     81 #如果没有找到
     82 #不会抛出异常,但是会返还之前查询的value
     83 
     84 f={10:"100",20:"C",30:40};
     85 print("我删除了:",f.pop(10));
     86 print(f);
     87 print("我可能删除了:",f.pop(20,"C"));
     88 print(f);
     89 
     90 #如果我们的pop()key写对了value不正确会发生什么?
     91 f={10:"100",20:"C",30:40};
     92 print("我可能删除了:",f.pop(10,"C"));
     93 print(f);
     94 #这里我们看到key10的对还是被删除了
     95 f={10:"100",20:"C",30:40};
     96 print("我可能删除了:",f.pop(101,"C"));
     97 print(f);
     98 #value是正确但是key是错误的,就不会正确的删除
     99 
    100 #popitem()
    101 #任意删除一组键值对,然后把删除的这组键值对用元组的形式表示出来
    102 
    103 f={10:"100",20:"C",30:40};
    104 print("我删除了:",f.popitem());
    105 print(f);
    106 print("我删除了:",type(f.popitem()));
    107 print(f);
    108 
    109 print("////////////////////////////////");
    110 
    111 #字典的访问
    112 #items()
    113 #返还字典内的所有元素
    114 f={10:"100",20:"C",30:40};
    115 print(f.items());
    116 #会以一种更直观的格式呈现
    117 
    118 #keys()
    119 #展示字典内的所有key键
    120 print(f.keys());
    121 
    122 #values()
    123 #展示字典内的所有value值
    124 print(f.values());
    125 
    126 #get(key,value)
    127 #通过键来找到对应的value并返回
    128 #如果没有找到就会返回上面填写的value值
    129 print(f.get(10));
    130 print(f.get(1000,"找不到!"));
    131 #但是没有填写默认的value的值
    132 #没有找到的话就没有返回值
    133 print(f.get(555));
    134 #None是返还值
    135 
    136 #此外还可以用in和not in来判断是否在字典内
    137 #但这只在PythonShell内有用
    138 '''
    139 例如这样
    140     100 in f
    141     >>> Ture
    142     "S" in f
    143     >>> False
    144 
    145 '''
    146 
    147 #遍历字典
    148 #还是利用for 迭代实现
    149 #这里就之举出一个特殊的例子
    150 
    151 for x ,y in f.items():
    152     print("Key:{0}--Value:{1}".format(x,y));
    153 #这里要搞清楚几个点
    154 #首先items生成的是什么?
    155 #items返回的是键值对的元组序列,所以这里我们用x和y
    156 #对元组中拆包出来的两个变量
    157 g={10:100};
    158 for x ,y in g.items():
    159     print("Key:{0}--Value:{1}".format(x,y));
    160     print(type(x),type(y));
    161     print(type(g.items()))
    162 
    163 print("///////////////////////////////////");
    164 
    165 #字典的推导式
    166 #因为key键和value值两组数据
    167 #所以字典的推导式就相对灵活许多
    168 
    169 aa={1:10,2:20,3:33};
    170 bb={k:v for k,v in aa.items() if(v/k==10)};
    171 print(bb);
    172 #这里我们就成功完成了一个字典的推导式
    173 #这里的基本相对的就是
    174 '''
    175     for k,v in aa.items():
    176         if(v/k==10):
    177             key=k;
    178             value=v;
    179 '''
    180 #基本和列表的推导式
    181 '''
    182     for k,v in aa.keys():
    183         if(v/k==10):
    184             key=k;
    185 
    186 '''
    187 bb={k for k,v in aa.items() if(v/k==10)};
    188 print(bb);
    189 #这里就只读取了key的值
    190 bb={k*20:v+20 for k,v in aa.items() if(v/k==10)};
    191 print(bb);
    悟已往之不谏,知来者之可追
  • 相关阅读:
    Windows 编程
    javascript 快速入门
    python 在windows下监听键盘按键
    eleme 项目使用到的库
    lftp 快速使用
    自动测试工具
    Cookie(1)
    fillder script使用
    Boost.Hana
    Haskell语言学习笔记(50)Extra
  • 原文地址:https://www.cnblogs.com/ljh-study/p/13770929.html
Copyright © 2011-2022 走看看