• 这是机器未来的第7篇文章
写在前面:
- 博客简介:专注AIoT领域,追逐未来时代的脉搏,记录路途中的技术成长!
- 专栏简介:本专栏的核心就是:快!快!快!2周快速拿下Python,具备项目开发能
- 面向人群:零基础编程爱好者
- 专栏计划:接下来会逐步发布跨入人工智能的系列博文,敬请期待
- Python零基础快速入门系列
- Python数据科学快速入门系列
- 人工智能开发环境搭建系列
- 机器学习系列
- 物体检测快速入门系列
- 自动驾驶物体检测系列
- …
这里的数据结构主要描述容器数据类型:列表, 字典, 集合三种容器数据类型, 它们都属于可变数据类型, 前面提到的数值类型和字符串类型、元组, 它们都属于不可变数据类型,不可以修改。
列表是Python容器数据类型,它是整个人工智能体系的容器数据结构底层核心,在它的基础上,扩展出了Numpy——机器学习数据容器,扩展出了Tensor——深度学习数据容器,所以要想学会人工智能,必须理解列表的使用。
列表是容器数据类型,可存储多个元素,且支持不同类型数据,可修改,有序列表,可重复。
举例:
x = [1, 'abc', True, {"name":"Joe"}, 1, 2, ['7', '89']]
x
在这里插入图片描述
例子中展现了以下情况:
• 不同的数据类型共存一个列表的情况:有数值类型、字符串、有列表、字典
• 列表包含其他容器类型:字典{“name”:“Joe”}和列表[‘7’, ‘89’]
• 列表展现了重复的数据,列表中存在2个1
定义列表有2种方法:list()函数和[]列表运算符。
首先看一下list()函数的描述:
list?
从输出的描述信息中可知,list仅支持1个参数:
x1 = list()
print(x1, type(x1))
在这里插入图片描述
• 不为空时,参数必须是可迭代类型
• 什么是可迭代对象呢?举个简单的例子,能够在for循环中遍历使用的都是可迭代类型,具体的可迭类型有字符串、列表、元组、字典。
x0 = list() # 无参数,空列表
print(x0, type(x0))
x1 = list("name") # 用字符串初始化列表
print(x1, type(x1))
x2 = list([1, 2, 'a', 'b', 'c']) # 用列表初始化列表
print(x2, type(x2))
x3 = list((1, 2, 3, 4)) # 用元组初始化列表
print(x3, type(x3))
d1 = {"name":"zsm", "age":18, "sex":"male"}
x4 = list(d1.keys()) # 用字典初始化列表:对于key和value需要分别处理
x5 = list(d1.values())
print(x4, type(x4), x5, type(x5))
x1 = [] # 空列表
print(x1, type(x1))
x2 = [1, 2, 3, 4] # 有元素的列表
print(x2, type(x2))
x = [1, 2, 3, 4, 5]
dir(x)
[‘add’,
‘class’,
‘contains’,
‘delattr’,
‘delitem’,
‘dir’,
‘doc’,
‘eq’,
‘format’,
‘ge’,
‘getattribute’,
‘getitem’,
‘gt’,
‘hash’,
‘iadd’,
‘imul’,
‘init’,
‘init_subclass’,
‘iter’,
‘le’,
‘len’,
‘lt’,
‘mul’,
‘ne’,
‘new’,
‘reduce’,
‘reduce_ex’,
‘repr’,
‘reversed’,
‘rmul’,
‘setattr’,
‘setitem’,
‘sizeof’,
‘str’,
‘subclasshook’,
‘append’,
‘clear’,
‘copy’,
‘count’,
‘extend’,
‘index’,
‘insert’,
‘pop’,
‘remove’,
‘reverse’,
‘sort’]
使用dir函数列出列表可支持的方法和属性,从输出可知方法有’append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’。
x = [1, 2, 3, 4, 'abc', True]
x.append(7) # 在末尾插入一个对象
x
[1, 2, 3, 4, ‘abc’, True, 7]
x.insert(2, 'boy') # 在索引为2的位置插入对象boy
x
[1, 2, ‘boy’, 3, 4, ‘abc’, True, 7]
x2 = ['banana', 'apple']
x.extend(x2) # 注意:是将列表x2中的元素合并到x中,不是将x2整体合并到x中
x
[1, 2, ‘boy’, 3, 4, ‘abc’, True, 7, ‘banana’, ‘apple’]
y = x.pop(4) # 取出列表中的元素4,取出后元素不再存于x中
print(x, y)
[1, 2, ‘boy’, 3, ‘abc’, True, 7, ‘banana’, ‘apple’] 4
x.append(2) # 插入一个新的对象2到列表中
print(x)
x.remove(2) # 删除一个值为2的对象,且仅删除第一个
print(x)
[1, 2, ‘boy’, 3, ‘abc’, True, 7, ‘banana’, ‘apple’, 2] [1, ‘boy’, 3, ‘abc’, True, 7, ‘banana’, ‘apple’, 2]
x.clear() # 清除对象
x
[]
x = [1, 2, 3, 4, 'abc', True]
print(x)
x.reverse() # 逆序
print(x)
[1, 2, 3, 4, ‘abc’, True] [True, ‘abc’, 4, 3, 2, 1]
x = [1, 2, 3, 7, 8,3, 2,2]
x.sort()
print(x)
[1, 2, 2, 2, 3, 3, 7, 8]
x = [1, 2, 3, 7, 8,3, 2,2]
x.count(2)
3
x = [1, 2, 3, 7, 8,3, 2,2]
x.index(2)
1
列表可以通过索引修改对应的值。
列表推导式是一个根据条件从原列表快速生成新列表的简写方法,其语法为
[输出值 for 遍历的元素 in 列表变量 if 条件语句]
举例:快速删除列表中的数字3
x = [1, 2, 3, 4, 5, 3, 6, 7]
x = [i for i in x if i!=3]
print(x)
[1, 2, 4, 5, 6, 7]
以上就是python列表的基础语法知识,更加深入的用法会在人工智能的学习过程中学到!
《Python零基础快速入门系列》快速导航:
• Python快速入门系列(1) 人工智能序章:开发环境搭建Anaconda+VsCode+JupyterNotebook(零基础启动)
• Python快速入门系列(2)一文快速掌握Python基础语法
推荐阅读:
• 物体检测快速入门系列(1)-Windows部署GPU深度学习开发环境
• 物体检测快速入门系列(2)-Windows部署Docker GPU深度学习开发环境
• 物体检测快速入门系列(3)-TensorFlow 2.x Object Detection API快速安装手册
• 物体检测快速入门系列(4)-基于Tensorflow2.x Object Detection API构建自定义物体检测器