列表的定义
List (列表)是Python中使⽤最频繁的数据类型 ,专⻔⽤于存储⼀串数据,存储的数据称为 元素
- 列表⽤ [ ] 定义,元素 之间使⽤ , 分隔
- 列表的 索引 从 0 开始
- 索引 就是元素在 列表 中的位置编号
name_list = ["zhangsan", "lisi", "wangwu"]
# 取出列表中元素的值
print(name_list[1]) # 输出 lisi
注意:从列表中取值时,如果 超出索引范围,程序会报错
列表常⽤操作
1 增加
- 列表.append(数据) 在末尾追加数据
- 列表.insert(索引, 数据) 在指定位置插⼊数据(位置前有空元素会补位)
- 列表.extend(可迭代对象) 将可迭代对象中的元素 追加到列表
2 删除
- 列表.remove(数据) 删除第⼀个出现的指定数据
- del 列表[索引] 删除指定索引的数据
- 列表.pop(索引) 删除指定索引数据,返回被删除的元素
- 列表.clear() 清空列表
3 修改
- 列表[索引] = 数据 修改指定索引的数据,数据不存在会报错
4 查询
- 列表[索引] 根据索引取值,索引不存在会报错
- 列表.index(数据) 根据值查询索引,返回⾸次出现时的索引,没有查到会报错
- 列表.count(数据) 数据在列表中出现的次数
- len(列表) 列表⻓度
- if 数据 in 列表: 检查列表中是否包含某元素
5 排序
- 列表.sort() 升序排序
- 列表.sort(reverse=True) 降序排序
- 列表.reverse() 逆序、反转
遍历
遍历:就是从头到尾依次从列表中取出每⼀个元素,并执⾏相同的操作 。
Python中专⻔提供 for循环 实现遍历 :
# for 实现列表的遍历
for name in name_list:
循环内部针对列表元素进⾏操作
print(name)
enumerate()枚举
通过枚举可以实现带下标索引的遍历:
chars = ['a','b','c']
for i , chr in enumerate(chars):
print(i,chr)
0 a
1 b
2 c
列表嵌套
类似while循环的嵌套,列表也是⽀持嵌套的
⼀个列表中的元素⼜是⼀个列表,那么这就是列表的嵌套
schoolNames = [['北京⼤学','清华⼤学'],
['南开⼤学','天津⼤学','天津师范⼤学'],
['⼭东⼤学','中国海洋⼤学']]
应⽤:
⼀个公司,有3个办公室,现在有8位员工等待⼯位的分配,请编写程序: 1> 完成随机的分配 2> 获取办公室信息
(每个办公室中的⼈数,及分别是谁)
import random
# 定义⼀个列表⽤来保存3个办公室
offices = [[],[],[]]
# 定义⼀个列表⽤来存储8位⽼师的名字
names = ['A','B','C','D','E','F','G','H']
# 完成随机分配
i = 0
for name in names:
index = random.randint(0,2)
offices[index].append(name)
# 获取办公室信息
i = 1
for tempNames in offices:
print('办公室%d的⼈数为:%d'%(i,len(tempNames)))
i+=1
for name in tempNames:
print("%s"%name,end='')
print('\n')
print('-'*20)
print("\n")
print("-"*20)
应用场景:
尽管 Python 的 列表 中可以 存储不同类型的数据
但在开发中,更多的应⽤场景是 :
- 1. 列表 存储相同类型的数据
- 2. 通过 for循环,在循环体内部,针对列表中的每⼀项元素,执⾏相同的操作
Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print x, | 1 2 3 | 迭代 |
Python列表截取
Python 的列表截取实例如下:
>>>L = ['Google', 'Runoob', 'Taobao']
>>> L[2] 'Taobao'
>>> L[-2] 'Runoob'
>>> L[1:] ['Runoob', 'Taobao']
>>>
描述:
Python 表达式 | 结果 | 描述 |
---|---|---|
L[2] | 'Taobao' | 读取列表中第三个元素 |
L[-2] | 'Runoob' | 读取列表中倒数第二个元素 |
L[1:] | ['Runoob', 'Taobao'] | 从第二个元素开始截取列表 |
Python列表函数&方法
Python包含以下函数:
序号 | 函数 |
---|---|
1 | cmp(list1, list2) 比较两个列表的元素 |
2 | len(list) 列表元素个数 |
3 | max(list) 返回列表元素最大值 |
4 | min(list) 返回列表元素最小值 |
5 | list(seq) 将元组转换为列表 |
Python包含以下方法:
序号 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 |