今天是『晓明兄』 “30天python处理Excel计划”第04天。有些时候我们处理的数据很简单,很容易处理。但是偶尔也会遇到比较复杂的数据。
所以为了降低复杂性,我们通常会数据区分、归类成为一个个的列表,例如:课程表、行程表、电话表等等。python同样具有这样的功能,下面我们将学习到python中列表的定义及操作。
今日目标
- 了解列表:list
- 列表的基本使用
list 列表
list列表 是python内置的一种有序的集合,可以添加、删除其中的元素。
- list列表 定义: 是用“[]”定义 用“,”隔开
列表初始化
我们先从简单的列表入手,下面有一组同学姓名:
zhangSan
liSi
wangWu
以python能理解的方式写:
names = ['zhangSan','liSi','wangWu']
list定义解析:
1. 在列表的两边需要用`[ ]`中括号括起来
2. 在字符串数据两边加引号(单引号或双引号),例:在名字两边加引号'zhangSan'或"zhangSan"
3. 用逗号将多个数据分开'zhangSan','liSi'
4. 使用复制操作 = ,将名字列表复制给 names 变量
访问列表中的元素
- list列表中的每个元素都分配位置或索引,第一个索引是0,第二个索引是1,依此类推。
用索引来访问list中每一个位置的元素,记得索引是从0开始的:
>>> names = ['zhangSan','liSi','wangWu']
>>> names[0]
'zhangSan'
>>> age = [18,20,25]
>>> age[0]
18
>>> age[1]
20
- 要注意索引不能超过范围,试一试:
>>> names = ['zhangSan','liSi','wangWu']
>>> names[3]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
错误:==list index out of range==,所以,要确保索引不要越界,记得第一个索引是从0开始,最后一个元素的索引是:“列表长度 - 1” 即 names 的列表长度是 3,最后一个索引是 2。
列表截取
>>> names = ['zhangSan','liSi','wangWu']
>>> names[2]
'wangWu'
>>> names[-2]
'liSi'
>>> names[1:]
['liSi', 'wangWu']
解析:
表达式 | 结果 | 解析 |
---|---|---|
names[2] | 'wangWu' | 读取列表中第三个元素 |
names[-2] | 'liSi' | 读取列表中倒数第二个元素 |
names[1:] | ['liSi', 'wangWu'] | 从第二个元素开始截取列表 |
添加列表元素
- 使用
append()
方法,在列表末尾追加数据:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.append('xiaoMing')
>>> names
['zhangSan', 'liSi', 'wangWu', 'xiaoMing']
- 使用
insert(索引,值)
方法,在指定位置插入,比如索引号为1
的位置:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.insert(1,'xiaoMing')
>>> names
['zhangSan', 'xiaoMing', 'liSi', 'wangWu']
删除列表元素
- 使用
pop()
方法,删除列表末尾的元素:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.pop()
'wangWu'
>>> names
['zhangSan', 'liSi']
- 使用
pop(索引)
方法,删除指定位置的元素:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.pop(1)
'liSi'
>>> names
['zhangSan', 'wangWu']
修改列表元素
- 使用
=
直接赋值对应的索引位置:
>>> names = ['zhangSan','liSi','wangWu']
>>> names[1] = 'xiao'
>>> names
['zhangSan','xiao','wangWu']
列表函数
表达式 | 结果 | 描述 |
---|---|---|
len([1,2,3]) | 3 | len() 获取列表长度 |
max([1,2,3]) | 3 | max() 获取列表最大值 |
min([1,2,3]) | 1 | min() 获取列表最小值 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | + 组合 |
列表混合类型
python列表中可以混合数据类型,即在同一个列表中混合存放字符串、数字、列表、等等(任意类型)。
试一试:
向names列表names = ['zhangSan','liSi','wangWu']
中插入相应的年龄,改变列表,使之成为下面的形式
['zhangSan',18,'liSi',20,'wangWu',26]
解答:
>>> names = ['zhangSan','liSi','wangWu']
>>> names.insert(1,18)
>>> names
['zhangSan', 18, 'liSi', 'wangWu']
>>> names.insert(3,20)
>>> names
['zhangSan', 18, 'liSi', 20, 'wangWu']
>>> names.append(26)
>>> names
['zhangSan', 18, 'liSi', 20, 'wangWu', 26]
恭喜你,到这里列表的基本操作已经学会了。不要松懈下面将讲解实际中经常出现的一种形式,多维列表。
多维列表
上面讲列表中可以混合数据类型,例如:列表中包含另一个列表(二维数组)。
>>> names = ['zhangSan','liSi',['xiao','ming'],'wangWu']
>>> len(names)
4
解析:
注意列表names的长度只有4个,其中包含一个列表['xiao','ming']
。下面进一步拆解:
>>> nameA = ['xiao','ming']
>>> nameB = ['zhangSan','liSi',nameA,'wangWu']
>>> nameB
['zhangSan', 'liSi', ['xiao', 'ming'], 'wangWu']
好,现在需要获取'ming'
需要怎么做?
要拿到ming
先要找到nameA
所在nameB
中的索引“2”,然后在nameA
中ming
的索引“1”,即:nameB[2][1]
小结
- 列表创建:使用"[]"中括号包裹,用“,”英文逗号分隔。
- 列表是一种有序的数据集合。
- 列表的基本操作包括查询、修改、删除。
每日一题
上期答案
- 答案:xiao
- 原题:
最后一行打印出来的是xiao还是ok呢?
a = 'xiao'
b = a
a = 'ok'
print(b)
解析:
1. 执行a = 'xiao'
,这个时候变量a
指向了xiao
2. 执行b = a
,这个时候变量b
也指向了xiao
,==注意b指向的是 字符串'xiao'
并不是 变量'a'
==
3. 执行a = 'ok'
,这个时候变量a
指向了ok
本期问题
如果获取列表中的内容?
names = [
['A', 'B', 'C'],
['D', 'E', 'F', 'G'],
['H', 'I', 'J']
]
问题1: 请获取列表中'A'?
问题2: 请获取列表中'F'?
问题3: 请获取列表中'H'?