今天是晓明兄 “30天python处理Excel计划”第04天,每天15分钟,轻松掌握Python,要坚持呦~。有些时候我们处理的数据很简单,很容易处理。但是偶尔也会遇到比较复杂的数据。
所以为了降低复杂性,我们通常会数据区分、归类成为一个个的列表,例如:课程表、行程表、电话表等等。python同样具有这样的功能,下面我们将学习到python中列表的定义及操作。
01 今日目标
1. 熟悉列表(list)的创建
2.熟悉列表(list)的基本操作
02 列表初始
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 "<stdin>", line 1, in <module>
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])3len() 获取列表长度max([1,2,3])3max() 获取列表最大值min([1,2,3])1min() 获取列表最小值[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]+ 组合
03 列表进阶
列表混合类型
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]
04 小结
- 列表创建:使用"[]"中括号包裹,用“,”英文逗号分隔。
- 列表是一种有序的数据集合。
- 列表的基本操作包括查询、修改、删除。
NOW现在行动! 晓明兄,现在行动
- 答案: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'?