> 文章列表 > Python入门教程+项目实战-10.1节: 列表的基础概念

Python入门教程+项目实战-10.1节: 列表的基础概念

Python入门教程+项目实战-10.1节: 列表的基础概念

目录

10.1.1 理解列表类型

10.1.2 列表的类型名

10.1.3 列表的定义

10.1.4 遍历可迭代对象

10.1.5 知识要点

10.1.6 系统学习python


10.1.1 理解列表类型

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

Python

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

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

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

对线性的顺序表结构不是很熟悉的同学,可以复习9.1节《字符串的基础概念》的内容。

在线性的顺序表结构中,可以通过索引的方式来访问数据集合中的元素:

Python

# 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中,凡是可以对集合中的元素进行遍历的数据类型,都是可迭代对象。所谓的遍历,就是逐一地访问集合中的元素。

代码实例:

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) 直接定义法

所谓的直接定义法,是直接通过[]符号来定义列表:

Python

# __desc__ = 通过[]符号来直接定义列表
container = [1, '2', 3.0, True]

列表类型可以包含任意地数据类型,现在通过直接定义法来定义嵌套的列表。所谓嵌套的列表,是指在列表中包含列表。

代码实例:

Python

# __desc__ = 通过直接定义法定义嵌套的列表numbers = [[1,2,3], [-1,-2-3], [3,2,1]]在上文实例中,定义了一个二维的列表。同学们可以将嵌套的列表理解为一种N维的数据结构。

我们平常见到的图片,表格等就是一种二维数据结构。

10.1.4 遍历可迭代对象

Python中的简单数据类型,都是不可迭代的对象。迄今学过的简单数据类型有整型,浮点类型,布尔类型。Python中的复合数据类型都是可迭代的对象。对于可迭代对象,可以在for循环结构中对集合中的元素进行遍历。

代码实例:

Python

# __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 number in numbers:for _ in number:print(_)

10.1.5 知识要点

(1) 列表类型是一种数据集合,将集合中的元素按先后顺序进行排列

(2) Python中使用[]括住的为列表类型,[]中的元素以英文逗号进行分隔

(3) 列表的类型名是list,同字符串一样,列表也是线性的序列结构

(4) 可以通过对象定义法和直接定义法来定义列表

(5) 简单数据类型是不可迭代的,Python中的复合数据类型都是可迭代的对象

(6) 对于可迭代对象,可以在for循环中遍历集合中的元素

10.1.6 系统学习python

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。

数豆子字体