数据类型(字典)

论坛 期权论坛     
选择匿名的用户   2021-5-22 14:56   174   0
<div class="blogpost-body" id="cnblogs_post_body">
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">前面讲了列表的各种操作: 这里我们要讲的是字典,有人说,字典是Python最强大的功能,能包含万物!让我们进入主题吧!</span></p>
<h2><span style="font-family:&#39;黑体&#39;;"><span style="font-size:16px;">1、字典dict</span></span></h2>
<p><span style="font-family:&#39;黑体&#39;;"><span style="font-size:16px;">  </span></span><span style="font-family:&#39;黑体&#39;;font-size:16px;">字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的(自Python3.6后,默认是有序的),且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。</span></p>
<p>   <span style="font-family:&#39;黑体&#39;;font-size:16px;">dict 用{}来表示 键值对数据 {key:value} 唯一性</span></p>
<pre class="blockcode"><span style="font-family:&#39;黑体&#39;;font-size:16px;">      键  都必须是可哈希的   不可变的数据类型就可以当做字典中的键  </span><br><br><span style="font-family:&#39;黑体&#39;;font-size:16px;">      值  没有任何限制   </span></pre>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">  字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。</span></p>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">  什么是可哈希, 目前所学的</span></p>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">        可哈希(不可变)的对象有,int、tuple、bool,</span></p>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">        不可哈希(可变)的有 list、set、dict、str<br></span></p>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">      注意点:</span></p>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">        1、字典的循环中,是不能在里面进行删除的</span></p>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">  1.1、增:</span></p>
<div class="cnblogs_code">
  <pre class="blockcode">dic &#61; {} <br>dic[<span style="color:#800000;">&#39;</span><span style="color:#800000;">name</span><span style="color:#800000;">&#39;</span>] &#61; <span style="color:#800000;">&#39;</span><span style="color:#800000;">周润发</span><span style="color:#800000;">&#39;</span>      <span style="color:#008000;">#</span><span style="color:#008000;"> 如果dict中没有出现这个key, 就会新增一个key-value的组 合进dict ,字典里有则会覆盖</span>
<span style="color:#000000;">
dic[</span><span style="color:#800000;">&#39;</span><span style="color:#800000;">age</span><span style="color:#800000;">&#39;</span>] &#61; 18
<span style="color:#0000ff;">print</span>(dic)                 <span style="color:#008000;">#</span><span style="color:#008000;"> 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值 </span>
dic.setdefault(<span style="color:#800000;">&#39;</span><span style="color:#800000;">嘉诚</span><span style="color:#800000;">&#39;</span>)    <span style="color:#008000;">#</span><span style="color:#008000;"> 也可以往里面设置值.</span>
dic.setdefault(<span style="color:#800000;">&#34;</span><span style="color:#800000;">嘉诚</span><span style="color:#800000;">&#34;</span>, <span style="color:#800000;">&#34;</span><span style="color:#800000;">房地产</span><span style="color:#800000;">&#34;</span>)    <span style="color:#008000;">#</span><span style="color:#008000;"> 如果dict中已经存在了. 那setdefault将会 起作用 </span>
<span style="color:#0000ff;">print</span>(dic)</pre>
</div>
<p><span style="font-family:&#39;黑体&#39;;font-size:16px;">  1.2、删:</span></p>
<div class="cnblogs_code">
  <pre class="blockcode">ret &#61; dic.pop(<span style="color:#800000;">&#34;</span><span style="color:#800000;">jay</span><span style="color:#800000;">&#34;</span><span style="color:#000000;">)
</span><span style="color:#0000ff;">print</span><span style="color:#000000;">(ret)

</span><span style="color:#0000ff;">del</span> dic[<span style="color:#800000;">&#34;</span><span style="color:#800000;">jay</span><span style="color:#800000;">&#34;</span>]   <span style="color:#008000;">#</span><span style="color:#008000;"> 删除含有这个key的键值对</span>
<span style="color:#0000ff;">print</span><span style="color:#000000;">(dic)   

ret </span>&#61; dic.popitem()  <span style="color:#008000;">#</span><span style="color:#008000;"> 随机删除,但是在3.6中一般是删除最后一个</span>
<span style="color:#000000;">
dic.clear()    </span><span style="color:#008000;">#</span><span style="color:#008000
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP