Python基础 – 数据结构(字典)

2022/6/19 12:37:10admin0 阅读0 评论

<h2>一对一的字典</h2>
<p>在Python中,将两种数据关联在一起形成一个元素, 由多个这样的元素组成的数据类型称为字典,又称为dict。
字典中的元素是不考虑排列顺序的。</p>
<p>组成字典元素(item)的两个数据一一对应,分别被称为<code>键(key)</code> 与<code>值(value)</code>,所以字典的元素又称为<code>键值对(key-value)</code>。
字典的元素只能通过键来查找对应的值,所以一个键只能对应一个值。</p>
<p>就像在通讯录中,我们通过联系人(键)来查找联系方式(值)。 </p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-01.png” alt=“” />
<p>在Python中,字典的键值对由冒号分割。冒号左边的数据为键,冒号右边的数据为值。
将多个这样的数据以逗号分割,存储到一个大括号中,就形成了一个字典类型。</p>
<pre class=“language-python line-numbers”><code class=“language-python”>
products = {“口香糖”: 15, “可乐”: 5.5, “薯片”: 45}
print(products)
</code></pre>
<p>代码的作用
创建一个字典“products”来存储商品信息,然后为他存储三个元素:
"15元的口香糖","5.5元的可乐","45元的薯片"。
使用print输出了整个字典。</p>
<p><strong>products</strong>
一串字母,字典的变量名。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-02.png” alt=“” />
<p><strong> { }</strong>
一对花括号,是字典存储数据的固定格式。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-03.png” alt=“” />
<p><strong>字典的键</strong>
三个字符串分别作为字典的三个键。
字典中的键可以由任意<strong>不可修改</strong>的数据类型组成(数字,字符串,元组)。
字典的键是唯一的,即<strong>一个字典不会有两个相同的键</strong>。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-04.png” alt=“” />
<p><strong>字典的值</strong>
三个数字分别作为字典的三个值。字典中的值可以是任意数据类型。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-05.png” alt=“” />
<p><strong> :</strong>
三个冒号,用来连接键与值。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-06.png” alt=“” />
<p><strong> ,</strong>
两个逗号,分割字典中的多个元素。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-07.png” alt=“” />
<p><strong>代码小结</strong>
当我们要定义一个dict操作时,可以使用下面的格式</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-08.png” alt=“” />
<p>作为一种数据结构,字典和列表一样,也会有<strong>查找、删除、添加、修改</strong>等功能。
但由于字典的元素,是由键值对(key-value)组成,并且字典是没有顺序的结构,因此在功能的使用上,有所不同。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-09.png” alt=“” />
<p><strong>查找元素</strong>
从列表中查找一个元素时,我们通过这个元素的索引,来进行查找。</p>
<p>但<strong>字典是没有顺序的,也就没有索引</strong>,所以只能通过<strong>字典的键(key)来查找对应的值(value)</strong>。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-10.png” alt=“” />
<p><strong>删除元素</strong>
从列表中删除一个元素时,我们使用pop()功能,通过这个元素的索引,来进行删除。
在字典中,我们依旧使用pop()功能,<strong>通过这个元素的键,来进行删除。</strong></p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-11.png” alt=“” />
<p>列表是可变的,可以通过索引修改元素,也可以通过append添加内容。
事实上,字典也是一种可变的数据类型。这意味着除了查找与删除,我们也可以对字典进行添加与修改。
<strong>但是字典的添加与修改过程与列表不同。</strong></p>
<h3>字典的添加与修改</h3>
<pre class=“language-python line-numbers”><code class=“language-python”>
products = {“name”: “可乐”, “type”: “饮品”, “price”: 5}
products[“other”] = “七折”
print(products)
</code></pre>
<p>代码的作用
创建一个字典“products”来存储选择的商品信息,然后为它存储三个键值对:
“商品的名字为可乐”,“商品的类型为饮品”,“商品的价格为5”。
第2行:为字典添加一个元素:“其它优惠活动为七折”。</p>
<p><strong>字典名</strong>
要修改的字典变量名 </p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-12.png” alt=“” />
<p><strong>中括号</strong>
中括号,设置要添加的键</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-13.png” alt=“” />
<p><strong>添加的键</strong>
指定一个新的键。
字典的键可以是任何不可改变的数据类型(字符串,数字,元组等)。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-14.png” alt=“” />
<p><strong> =</strong>
等号<code>=</code>,赋值符号。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-15.png” alt=“” />
<p><strong>添加的值</strong>
一个字符串,表示要添加的值</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-16.png” alt=“” />
<p><strong>修改元素</strong>
字典的键是不能重复的。当我们尝试添加一个已经存在的键时,就会将该元素覆盖。
所以对字典的修改,就是对字典的某个已经存在的键重新赋值。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-17.png” alt=“” />
<p><strong>代码小结</strong>
当我们要为字典添加或者修改一个元素时</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-18.png” alt=“” />
<p>以上就是对字典的查找、删除、添加与修改操作。
目前为止的两种<strong>可以修改的数据类型</strong>,即字典与列表。现在我们来比较一下这两种数据类型在操作上的不同之处。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-19.png” alt=“” />
<p>若我们不知道字典有哪些键怎么办?
在字典中,我们还可以通过"<code>keys()</code>"功能获取这个字典所有的键。
<code>keys()</code>是字典的一个功能,它能够提取一个字典所有的键,并存储在一个类似于列表的名为dict_keys的数据中,方便我们查看该字典的键。
需要注意,keys的右边有一对空的括号。</p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-20.png” alt=“” />
<p>除了使用“keys()”以外,我们也可以通过in运算来检查字典是否包含某个键。 </p>
<img src=“https://assets.moshanghua.net/images/2022/06/msh-2528-21.png” alt=“” />