注册 登录
Python基础教程

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

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

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握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 208609 1

编辑 收藏

广州番禺Python, Java小班周末班培训

薯条老师的线下Python,Java小班周末班已经开课了,培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Java后端开发。授课详情请点击:http://chipscoco.com/?cate=6

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

10.1.5 知识要点

(1) 列表类型是一种数据集合,将集合中的元素按先后顺序进行排列
(2) Python中使用[]括住的为列表类型,[]中的元素以英文逗号进行分隔
(3) 列表的类型名是list,同字符串一样,列表也是线性的序列结构
(4) 可以通过对象定义法和直接定义法来定义列表
(5) 简单数据类型是不可迭代的,Python中的复合数据类型都是可迭代的对象
(6) 对于可迭代对象,可以在for循环中遍历集合中的元素

10.1.6 高薪就业班

(1) Python后端工程师高薪就业班,月薪10K-15K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪10K-20K, 免费领取课程大纲
(4) Python大数据工程师就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取学习资料:


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

  • 访客

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

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

欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录