Python数据结构 List(列表)、Tuple(元组)、Dictionary(字典)
List(列表):[]
列表是最常用的 Python 数据类型,它以一个方括号内的逗号分隔值出现。
列表属于可变数据类型,字符串、整数、浮点数、布尔类型属于不可变数据类型。
列表的数据项不需要具有相同的类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
列表常用的方法(增、删、改)、通过索引取值、函数(求长度、最大值、最小值、排序)
# 定义空的列表(购物清单)
shopping_list = []
# 往购物清单里添加两个商品
shopping_list.append("键盘")
shopping_list.append("键帽")
# 往购物清单里移除一个商品
shopping_list.remove("键帽")
# 往购物清单里移除两个商品
shopping_list.append("音响")
shopping_list.append("电竞椅")
# 更改购物清单的第二个商品
shopping_list[1] = "硬盘"
# 打印列表的值(可变数据类型)
print(shopping_list)
# 打印列表第一个元素的值
print(shopping_list[0])
# 打印列表的长度(元素的数量)
print(len(shopping_list))
# 定义一个价格列表
price = [799, 1024, 200, 800]
# 获取最高的价格
max_price = max(price)
# 获取最低的价格
min_price = min(price)
# 获取从低到高排序好的价格列表
sorted_price = sorted(price)
print(max_price)
print(min_price)
print(sorted_price)
列表运算符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
Tuple(元组):()
Python 的元组与列表类似,不同之处在于元组的元素不能修改,属于不可变数据类型。
元组使用小括号 ( ),列表使用方括号 [ ]。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
# 创建元祖
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d" # 不需要括号也可以
type(tup3) #<class 'tuple'>
# 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
tup1 = (50)
type(tup1) # 不加逗号,类型为整型 <class 'int'>
tup2 = (50,)
type(tup2) # 加上逗号,类型为元组 <class 'tuple'>
# 元组与字符串类似,下标索引从 0 开始,可以进行截取,组合等。
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0]) # tup1[0]: Google
print ("tup2[1:5]: ", tup2[1:5]) # tup2[1:5]: (2, 3, 4, 5)
# 元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3) # (12, 34.56, 'abc', 'xyz')
# 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
tup = ('Google', 'Runoob', 1997, 2000)
print (tup)
# 删除元祖
del tup
print (tup) # 元组被删除后,输出变量会有异常信息
元祖运算符
与字符串一样,元组之间可以使用 +、+=和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python 表达式 | 结果 | 描述 |
---|---|---|
|
3 | 计算元素个数 |
|
(1, 2, 3, 4, 5, 6) | 连接,c 就是一个新的元组,它包含了 a 和 b 中的所有元素。 |
|
(1, 2, 3, 4, 5, 6) | 连接,a 就变成了一个新的元组,它包含了 a 和 b 中的所有元素。 |
|
('Hi!', 'Hi!', 'Hi!', 'Hi!') | 复制 |
|
True | 元素是否存在 |
|
1 2 3 | 迭代 |
Dictionary(字典):{}
字典是另一种可变数据类型,且可存储任意类型对象。
字典的每个键值对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中。
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变数据类型,如字符串,数字,布尔类型,元组。
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
# 使用大括号 {} 来创建空字典
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([1, 2, 3])
# 打印所有键值对组成的元祖的视图对象
print(temperature_dict.items()) # dict_items([('a', 1), ('b', 2), ('c', 3)])
字典应用示例:查询流行语含义
# 结合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[query])
else:
print("您查询的流行语暂未收录。")
print("当前本词典收录词条数为:" + str(len(slang_dict)) + "条。")
字典内置函数:
序号 | 函数及描述 | 实例 |
---|---|---|
1 | len(dict) 计算字典元素个数,即键的总数。 |
|
2 | str(dict) 输出字典,可以打印的字符串表示。 |
|
3 | type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。 |
|
字典内置方法:
序号 | 函数及描述 |
---|---|
1 | dict.clear() 删除字典内所有元素 |
2 | dict.copy() 返回一个字典的浅复制 |
3 | dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | dict.get(key, default=None) 返回指定键的值,如果键不在字典中返回 default 设置的默认值 |
5 | key in dict 如果键在字典dict里返回true,否则返回false |
6 | dict.items() 以列表返回一个视图对象 |
7 | dict.keys() 返回一个视图对象 |
8 | dict.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | dict.update(dict2) 把字典dict2的键/值对更新到dict里 |
10 | dict.values() 返回一个视图对象 |
11 | dict.pop(key[,default]) 删除字典 key(键)所对应的值,返回被删除的值。 |
12 | dict.popitem() 返回并删除字典中的最后一对键和值。 |
相关学习资料:
3小时快速入门Python
Python3教程
Python数据结构 List(列表)、Tuple(元组)、Dictionary(字典)的更多相关文章
- Python数据结构之列表、元组及字典
一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Pyth ...
- Python数据结构:列表、元组和字典
在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...
- python学习4—数据结构之列表、元组与字典
python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...
- Python中3种内建数据结构:列表、元组和字典
Python中3种内建数据结构:列表.元组和字典 Python中有3种内建的数据结构:列表.元组和字典.参考简明Python教程 1. 列表 list是处理一组有序项目的数据结构,即你可以在一个列表中 ...
- Python 学习笔记(1)Python容器:列表、元组、字典与集合
Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者 list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list( ...
- python 变量、列表、元组、字典
python 变量.列表.元组.字典 1.python 变量赋值 2.ptython 列表 3.python 元组 4.python 字典 1. Python变量赋值 1.1变量的命名规 ...
- A Byte of Python 笔记(7)数据结构:列表、元组、字典,序列
第9章 数据结构 数据结构,即可以处理一些数据的结构.或者说,它们是用来存储一组相关数据的. python 有三种内建的数据结构--列表.元组和字典. list = ['item1', 'item2' ...
- Python中的列表、元组、字典、字符串及切片操作
我们引入一个新的概念:数据结构 数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构,在python中,最基本的数据结构是序列,序列中的每个元素匾被分 ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
- Python学习——Python 容器(列表,元组,字典,集合)
列表: 列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改变时.与字符串不同,列表是可变的. 你可以直接对原始列表进行修改:添加新元素.删除或覆盖已有元素.在列表中,具有相同值 ...
随机推荐
- Vite 3 来了!新增功能 + 如何迁移
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- WPF 由TreeView想到的 DataTemplate,HierarchicalDataTemplate
DataTemplate简而言之,解决的就是后台代码中的类以怎么样的形式展现在xaml前台代码中的问题. 所以DataTemplate一般都要指定DataType,一般放在resource中,而Hie ...
- B1031 查验身份证 (15 分)
描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5 ...
- [极客大挑战 2019]FinalSQL 1
[极客大挑战 2019]FinalSQL 1 这篇主要是考察布尔盲注,而且他很贼,弄了两个输入框,但过滤的东西很多:真正的注入点在search.php传入的参数.说来惭愧,之前就做过布尔盲注的题目,结 ...
- python根据日期、随机数生成编码
import datetime import random import string """ 编码格式:YYYYMMDD 身份证后四位.四位随机数 "& ...
- 如何实现RAG与MCP集成
1.概述 在人工智能的创新浪潮中,检索增强生成(RAG)技术以其高效调用外部知识.提升生成内容准确性的能力备受瞩目,而模型上下文协议(MCP)则为不同模型间的交互与协同提供了标准框架.当 RAG 的知 ...
- 玩转AI新声态 | 玩转TTS/ASR/YuanQI 打造自己的AI助手
前言 halo, 各位佬友这是我24年写的整理一下发出来, 可能有点老了, ai发展这么快...... 本次带来的是腾讯云玩转AI新声态语音产品应用实践,利用 TTS / ASR / 元器智能体 打造 ...
- Easing缓动函数宝藏网站
鼠标放上去,就可以查看速度变化了 找了很久,终于找到了,大家可以收藏起来,很好用 https://easings.net/
- SQL Server 配置管理器打不开提示错误
---------------------------SQL Server 配置管理器--------------------------- 无法连接到 WMI 提供程序.您没有权限或者该服务器无法访 ...
- WPF 不能识别的图标代码
https://blog.csdn.net/YouyoMei/article/details/86702178?utm_medium=distribute.pc_relevant.none-task- ...