Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元组类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python高级编程

第二十章: Python项目实战

首页 > Python基础教程 > 第十章: Python列表类型 > 10.1节: 列表的基础概念

10.1节: 列表的基础概念

薯条老师 2020-05-03 16:05:56 236087 1

编辑 收藏

10.1.1 理解列表类型

我们在日常生活中,都会接触到“列表”这种数据类型,譬如一本书籍的目录,在餐厅结账时的账单明细, 对日程的计划安排等。列表类型是一种数据集合,将集合中的元素按先后顺序进行排列。Python中的列表类型是用[]符号括住的一个数据集合,集合中的元素以英文逗号进行分隔。在列表类型中可以包含任意的数据类型:

# 定义一个列表变量container
container = [1, '2', 3.0, True]
# 在列表变量container中,同时包含整型 ,字符串类型,浮点类型,布尔类型

image.png

列表的数据结构同字符串一样,都是一种线性的顺序表结构:

image.png

从图可以看出,列表类型对应的也是一块连续的内存。

对线性的顺序表结构不是很熟悉的同学,可以复习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。

扫码咨询薯条老师:

扫码领学习资料.jpg


已有1位薯条发表了看法:

  • 访客

    访客  评论于 2021-01-28 12:19:15  回复

    请问课后习题的第三题有参考答案吗

欢迎 发表评论: