10.1.1 理解列表类型
我们在日常生活中,都会接触到“列表”这种数据类型,譬如一本书籍的目录,在餐厅结账时的账单明细, 对日程的计划安排等。列表类型是一种数据集合,将集合中的元素按先后顺序进行排列。Python中的列表类型是用[]符号括住的一个数据集合,集合中的元素以英文逗号进行分隔。在列表类型中可以包含任意的数据类型:
# 定义一个列表变量container container = [1, '2', 3.0, True] # 在列表变量container中,同时包含整型 ,字符串类型,浮点类型,布尔类型
列表的数据结构同字符串一样,都是一种线性的顺序表结构:
从图可以看出,列表类型对应的也是一块连续的内存。
对线性的顺序表结构不是很熟悉的同学,可以复习9.1节《字符串的基础概念》的内容。
在线性的顺序表结构中,可通过索引的方式来访问容器中的元素:
# 1.字符串是一种线性的顺序表结构 love = 'I Love You' # 读取字符串中的一个字符 char = love[0] # 2.列表也是一种线性的顺序表结构 container = [1, '2', 3.0, True] # 读取列表中的一个元素 element = container[0]
Python中的索引从0开始编号,0表示第一个位置,1表示第二个位置。Python也支持负数索引,负数索引从-1开始编号,-1表示倒数第一个位置,-2表示倒数第二个位置,以此类推。
10.1.2 列表的类型名
在交互模式中调用type来输出字符串的类型名:
>>> container = [1, '2', 3.0, True]>>> type(container)<class 'list'>
从输出可知,列表的类型名为list。
10.1.3 列表的定义
对列表进行定义,主要有对象定义法和直接定义法。
(1) 对象定义法
列表的类型名是list,可以直接在交互模式中执行help(list)来查找list的定义及用法:
>>> help(list)Help on class list in module builtins:class list(object)| list(iterable=(), /)|| Built-in mutable sequence.|| If no argument is given, the constructor creates a new empty list.| The argument must be an iterable if specified.
在交互模式的输出中,list(iterable=(),/)的形式就是对象定义法。参数iterable表示可迭代对象。迄今学过的数据类型中,字符串以及列表都是一种可迭代类型。在Python中,凡是可以对容器中的元素进行逐一地访问的数据类型,就是可迭代类型。
代码实例:
# __desc__ = 通过对象定义法定义列表 # 1.定义空列表 # 不传递任何参数时,定义的是空列表 array = list() # 2.传递字符串类型定义列表,字符串是可迭代对象 letters = list("abcdefg") """ letters的输出为['a','b','c','d','e','f','g'] 从输出可以看出,是逐一地将字符串中的字符添加进列表中 """ # 3.传递列表类型定义列表,列表也是可迭代对象 container = list([1, '2', 3.0, True]) # container的输出为[1, '2', 3.0,True](2) 直接定义法
所谓直接定义法,是指直接通过[]符号来定义列表:
# __desc__ = 通过[]符号来直接定义列表 container = [1, '2', 3.0, True]列表可以包含任意的数据类型,现在通过直接定义法来定义嵌套的列表。所谓嵌套列表,是指在列表中包含列表。
代码实例:
# __desc__ = 通过直接定义法定义嵌套的列表 numbers = [[1,2,3], [-1,-2-3], [3,2,1]]在以上代码实例中,定义了嵌套列表。同学们可以将嵌套的列表理解为一种N维的数据结构。我们平常见到的图片,表格等就是一种二维数据结构。
10.1.4 迭代可迭代对象
Python中的简单数据类型,都是不可迭代的对象。迄今学过的简单数据类型有整型,浮点类型,布尔类型,空类型。Python中的复合数据类型都是可迭代的。只要是可迭代对象,就可以在for循环中迭代容器中的元素。
代码实例:
# __desc__ = 在for循环中迭代可迭代对象 # 1.迭代字符串 love = 'I Love You' for _ in love: print(_) # 2.迭代列表 container = [1, '2', 3.0, True] for element in container: print(element) # 2.通过嵌套的for循环来迭代嵌套的列表 numbers = [[1,2,3], [-1,-2-3]] for numbers_ in numbers: for number in numbers_: print(number)
10.1.5 最具实力的小班培训
薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K
跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。
扫码咨询薯条老师:
已有1位薯条发表了看法:
访客 评论于 2021-01-28 12:19:15 回复
请问课后习题的第三题有参考答案吗