子非 發表於 2025-7-29 16:13:00

Python数据结构 List(列表)、Tuple(元组)、Dictionary(字典)

<p><strong>List(列表):[]</strong><br>列表是最常用的 Python 数据类型,它以一个方括号内的逗号分隔值出现。<br><strong>列表属于可变数据类型,字符串、整数、浮点数、布尔类型属于不可变数据类型。</strong><br><strong>列表的数据项不需要具有相同的类型。&nbsp;</strong><br>创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:</p>
<pre class="language-python highlighter-hljs"><code>list1 = ['Google', 'Runoob', 1997, 2000]
list2 =
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']</code></pre>
<p><strong>列表常用的方法(增、删、改)、通过索引取值、函数(求长度、最大值、最小值、排序)</strong></p>
<pre class="language-python highlighter-hljs"><code># 定义空的列表(购物清单)
shopping_list = []
# 往购物清单里添加两个商品
shopping_list.append("键盘")
shopping_list.append("键帽")
# 往购物清单里移除一个商品
shopping_list.remove("键帽")
# 往购物清单里移除两个商品
shopping_list.append("音响")
shopping_list.append("电竞椅")
# 更改购物清单的第二个商品
shopping_list = "硬盘"

# 打印列表的值(可变数据类型)
print(shopping_list)
# 打印列表第一个元素的值
print(shopping_list)
# 打印列表的长度(元素的数量)
print(len(shopping_list))

# 定义一个价格列表
price =
# 获取最高的价格
max_price = max(price)
# 获取最低的价格
min_price = min(price)
# 获取从低到高排序好的价格列表
sorted_price = sorted(price)
print(max_price)
print(min_price)
print(sorted_price)</code></pre>
<p><strong>列表运算符<br></strong>列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。<strong><br></strong></p>
<table class="reference">
<tbody>
<tr>
<th>Python 表达式</th>
<th>结果</th>
<th>描述</th>
</tr>
<tr>
<td>len()</td>
<td>3</td>
<td>长度</td>
</tr>
<tr>
<td> + </td>
<td></td>
<td>组合</td>
</tr>
<tr>
<td>['Hi!'] * 4</td>
<td>['Hi!', 'Hi!', 'Hi!', 'Hi!']</td>
<td>重复</td>
</tr>
<tr>
<td>3 in </td>
<td>True</td>
<td>元素是否存在于列表中</td>
</tr>
<tr>
<td>for x in : print(x, end=" ")</td>
<td>1 2 3</td>
<td>迭代</td>
</tr>
</tbody>
</table>
<p><strong>Tuple(元组):()<br></strong>Python 的元组与列表类似,不同之处在于元组的元素不能修改,<strong>属于不可变数据类型。 <br>元组使用小括号 ( ),列表使用方括号 [ ]。 <br></strong>元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。&nbsp;</p>
<pre class="language-python highlighter-hljs"><code># 创建元祖
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"   #不需要括号也可以
type(tup3) #&lt;class 'tuple'&gt;

# 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
tup1 = (50)
type(tup1)   # 不加逗号,类型为整型 &lt;class 'int'&gt;

tup2 = (50,)
type(tup2)   # 加上逗号,类型为元组 &lt;class 'tuple'&gt;

# 元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )

print ("tup1: ", tup1)       # tup1:Google
print ("tup2: ", tup2)   # tup2:(2, 3, 4, 5)

# 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')

# 以下修改元组元素操作是非法的。
# tup1 = 100

# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3)      # (12, 34.56, 'abc', 'xyz')

# 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
tup = ('Google', 'Runoob', 1997, 2000)
print (tup)
# 删除元祖
del tup
print (tup) # 元组被删除后,输出变量会有异常信息</code></pre>
<p><strong>元祖运算符<br></strong>与字符串一样,元组之间可以使用&nbsp;<span class="marked">+</span>、<span class="marked">+=</span>和&nbsp;<span class="marked">*</span>&nbsp;号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。</p>
<table class="reference">
<tbody>
<tr>
<th>Python 表达式</th>
<th>结果</th>
<th>描述</th>
</tr>
<tr>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>len((1, 2, 3))</code></pre>
</td>
<td>3</td>
<td>计算元素个数</td>
</tr>
<tr>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>&gt;&gt;&gt; a = (1, 2, 3)
&gt;&gt;&gt; b = (4, 5, 6)
&gt;&gt;&gt; c = a+b
&gt;&gt;&gt; c
(1, 2, 3, 4, 5, 6)</code></pre>
</td>
<td>(1, 2, 3, 4, 5, 6)</td>
<td>连接,c 就是一个新的元组,它包含了 a 和 b 中的所有元素。</td>
</tr>
<tr>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>&gt;&gt;&gt; a = (1, 2, 3)
&gt;&gt;&gt; b = (4, 5, 6)
&gt;&gt;&gt; a += b
&gt;&gt;&gt; a
(1, 2, 3, 4, 5, 6)</code></pre>
</td>
<td>(1, 2, 3, 4, 5, 6)</td>
<td>连接,a 就变成了一个新的元组,它包含了 a 和 b 中的所有元素。</td>
</tr>
<tr>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>('Hi!',) * 4</code></pre>
</td>
<td>('Hi!', 'Hi!', 'Hi!', 'Hi!')</td>
<td>复制</td>
</tr>
<tr>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>3 in (1, 2, 3)</code></pre>
</td>
<td>True</td>
<td>元素是否存在</td>
</tr>
<tr>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>for x in (1, 2, 3):
    print (x, end=" ")</code></pre>
</td>
<td>1 2 3</td>
<td>迭代</td>
</tr>
</tbody>
</table>
<p><strong>Dictionary(字典):{}<br>字典是另一种可变数据类型,且可存储任意类型对象。</strong> <br>字典的每个键值对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中。 <br><strong>键必须是唯一的,但值则不必。</strong> <br><strong>值可以取任何数据类型,但键必须是不可变数据类型,如字符串,数字,布尔类型,元组。 <br>注意:dict </strong>作为 Python 的关键字和内置函数,变量名不建议命名为 dict。<strong><br></strong></p>
<pre class="language-python highlighter-hljs"><code># 使用大括号 {} 来创建空字典
emptyDict1 = {}
# 使用内建函数 dict() 创建空字典
emptyDict2 = dict()

tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
# 使用键获取字典的值
print ("tinydict['Name']: ", tinydict['Name'])   # tinydict['Name']:Runoob
print ("tinydict['Age']: ", tinydict['Age'])   # tinydict['Age']:7
print ("tinydict['Alice']: ", tinydict['Alice']) # 键不存在,输出错误信息

# 更新或添加键值
tinydict['Age'] = 8            # 更新键 Age 对应的值
tinydict['School'] = "菜鸟教程"# 键 School 不存在,则添加

print ("tinydict['Age']: ", tinydict['Age'])      # tinydict['Age']:8
print ("tinydict['School']: ", tinydict['School'])# tinydict['School']:菜鸟教程

# 删除键、清空字典、删除字典
del tinydict['Name'] # 删除键 Name
tinydict.clear()   # 清空字典
del tinydict         # 删除字典

# 创建字典 temperature_dict 其中包括啊 a,b,c 三个键对应值为 1, 2, 3
temperature_dict = {"a" : 1, "b" : 2, "c" : 3}
# 打印字典中键的数量
print(len(temperature_dict))   # 3
# 打印所有键的视图对象
print(temperature_dict.keys())   # dict_keys(['a', 'b', 'c'])
# 打印所有值的视图对象
print(temperature_dict.values()) # dict_values()
# 打印所有键值对组成的元祖的视图对象
print(temperature_dict.items())# dict_items([('a', 1), ('b', 2), ('c', 3)])</code></pre>
<p>字典应用示例:查询流行语含义</p>
<pre class="language-python highlighter-hljs"><code># 结合input、字典、if判断,做一个查询流行语含义的电子词典程序
slang_dict["双减"] = "指进一步减轻义务教育阶段学生作业负担和校外培训负担。其目标是使学校教育教学质量和服务水平进一步提升,作业布置更加科学合理,学校课后服务基本满足学生需要,学生学习更好回归校园,校外培训机构培训行为全面规范。"
slang_dict["破防"] = "原指在游戏中突破了对方的防御,使对方失去防御能力。现指因遇到一些事或看到一些信息后情感上受到很大冲击,内心深处被触动,心理防线被突破。"
slang_dict["元宇宙"] = "源于小说《雪崩》的科幻概念,现指在XR(扩展现实)、数字孪生、区块链和AI(人工智能)等技术推动下形成的虚实相融的互联网应用和社会生活形态。现阶段,元宇宙仍是一个不断演变、不断发展的概念。Facebook(脸书)对外公布更名为“Meta”,该词即来源于“Metaverse”(元宇宙)。"
slang_dict["绝绝子"] = "该词流行于某网络节目,节目中一些粉丝用“绝绝子”为选手加油。多用于赞美,表示“太绝了、太好了”。这个词引发了网友对网络语言的关注和讨论。"
slang_dict["躺平"] = "该词指人在面对压力时,内心再无波澜,主动放弃,不做任何反抗。“躺平”更像是年轻人的一种解压和调整方式,是改变不了环境便改变心态的自我解脱。短暂“躺平”是为了积聚能量,更好地重新出发。"
slang_dict["伤害性不高,侮辱性极强"] = "一段网络视频中,两名男子相互夹菜,而同桌的另一名女子则显得很孤单。于是有网友调侃“伤害性不高,侮辱性极强”。后被网友用来调侃某事虽然没有实质性危害,但是却令人很难堪。"
slang_dict["我看不懂,但我大受震撼"] = "源自导演李安在纪录片《打扰伯格曼》(2013)里评价一部影视作品的话。现多用于表示自己对某件事情的不解、震惊。"

query = input("请输入您想要查询的流行语:")
if query in slang_dict:
    print("您查询的" + query + "含义如下")
    print(slang_dict)
else:
    print("您查询的流行语暂未收录。")
    print("当前本词典收录词条数为:" + str(len(slang_dict)) + "条。")</code></pre>
<p><strong>字典内置函数:</strong></p>
<table class="reference">
<tbody>
<tr>
<th width="5%">序号</th>
<th width="25%">函数及描述</th>
<th>实例</th>
</tr>
<tr>
<td>1</td>
<td>len(dict)<br>计算字典元素个数,即键的总数。</td>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>&gt;&gt;&gt; tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
&gt;&gt;&gt; len(tinydict)
3</code></pre>
</td>
</tr>
<tr>
<td>2</td>
<td>str(dict)<br>输出字典,可以打印的字符串表示。</td>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>&gt;&gt;&gt; tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
&gt;&gt;&gt; str(tinydict)
"{'Name': 'Runoob', 'Class': 'First', 'Age': 7}"</code></pre>
</td>
</tr>
<tr>
<td>3</td>
<td>type(variable)<br>返回输入的变量类型,如果变量是字典就返回字典类型。</td>
<td>
<pre class="prettyprint prettyprinted highlighter-hljs"><code>&gt;&gt;&gt; tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
&gt;&gt;&gt; type(tinydict)
&lt;class 'dict'&gt;</code></pre>
</td>
</tr>
</tbody>
</table>
<p><strong>字典内置方法:</strong></p>
<table class="reference">
<tbody>
<tr>
<th>序号</th>
<th>函数及描述</th>
</tr>
<tr>
<td>1</td>
<td>dict.clear()<br>删除字典内所有元素</td>
</tr>
<tr>
<td>2</td>
<td>dict.copy()<br>返回一个字典的浅复制</td>
</tr>
<tr>
<td>3</td>
<td>dict.fromkeys()<br>创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值</td>
</tr>
<tr>
<td>4</td>
<td>dict.get(key, default=None)<br>返回指定键的值,如果键不在字典中返回 default 设置的默认值</td>
</tr>
<tr>
<td>5</td>
<td>key in dict<br>如果键在字典dict里返回true,否则返回false</td>
</tr>
<tr>
<td>6</td>
<td>dict.items()<br>以列表返回一个视图对象</td>
</tr>
<tr>
<td>7</td>
<td>dict.keys()<br>返回一个视图对象</td>
</tr>
<tr>
<td>8</td>
<td>dict.setdefault(key, default=None)<br>和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default</td>
</tr>
<tr>
<td>9</td>
<td>dict.update(dict2)<br>把字典dict2的键/值对更新到dict里</td>
</tr>
<tr>
<td>10</td>
<td>dict.values()<br>返回一个视图对象</td>
</tr>
<tr>
<td>11</td>
<td>dict.pop(key[,default])<br>删除字典 key(键)所对应的值,返回被删除的值。</td>
</tr>
<tr>
<td>12</td>
<td>dict.popitem()<br>返回并删除字典中的最后一对键和值。</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>相关学习资料:<br>&nbsp; &nbsp;&nbsp;3小时快速入门Python<br>&nbsp; &nbsp;&nbsp;Python3教程</p><br><br>
来源:https://www.cnblogs.com/cyber120/p/19010921
頁: [1]
查看完整版本: Python数据结构 List(列表)、Tuple(元组)、Dictionary(字典)