L4.一.列表md

列表
===

## 引题
原来学过数据类型如 a= 1 b = 'hello'
但是这些都是变量。现实生活中我们想表达一个班的几十个学生,一个袋子里多个水果。python当中提供了一个表达“一组”概念的数据结构,列表。


## 语法
列表形如:[1, 2, 3, 4] ['小明', '小狗', '小猪']
中括号括起来,里面有多个元素(项),项可以是数字、字符串、布尔,每一项逗号分隔


## 创建
1. 声明变量时 中括号、项,创建一个非空的列表
num_list = [1,2,3,4]
2. 创建一个空列表,之后再修改
num_list = []
3. 类实例化创建
list1 = list()


## 添加
1.append() 追加,,,
列表对象.append(项目), 追加一个元素到列表末尾
>>>list1.append('小明’)
>>>list1
>>>['小明']
>>>list1.append('小花’)
>>>list1
>>>['小明','小花']
2. insert()
列表对象.insert(索引,新项), 插入到指定下标处。
list1 = [1,2,3]
list1.insert(0,4) → [4,1,2,3]
3. 列表合并
两个变量都是列表时,可以合并
list1 = [1]
list2 = [2,3]
list1 + list2 → [1,2,3]
4. 批量添加
list1 = ['小王','小红']
for i in ['小李','小王','小小']:
list1.append(i)
list1 → ['小王','小红','小李','小王','小小']

## 删除
1.pop()
列表对象.pop(索引) , 删除指定索引的那一项。删除成功后返回删除的对象
list1 = [1,2,3]
list1.pop(0) → 1
list1 → [2,3]

2. remove()
列表对象.remove(项内容),根据项的内容删除
list1 = ['小时','小白','小兔']
list1.remove('小白')
list1
['小时', '小兔']

3.(不常用) clear()
列表对象。clear(), 清空所有项
list1 = ['小时','小白','小兔']
list1.clear()
list1
[]

4. (不常用)关键字 del
list1 = ['小时','小白','小兔']
del list1[0]
list1 → ['小白','小兔']


## 修改
1. 根据下标修改
列表对象[索引] = 新值
list1 = ['小时','小白','小兔']
list1[1] = '小王'
list1 → ['小时','小王','小兔']



## 访问
1. 通过下标(索引 index) 访问。
列表中的项以 0,1,2...编号。比如[1,2,3]中的元素1的下标是0
list1 = [1,2,3]
list1[0] → 1
list1[-1] → 3 下标负数表示倒数第几项
2. 遍历,访问列表中的每一项
for i in ['小时','小白','小兔']
print(i)

3. 遍历,循环下标。 场景 修改
len(列表对象) 返回的是列表项数。
list1 = ['小时','小白','小兔']
for i in range(0,len(list1)):
print(list1[i])

小时
小白
小兔

## 切片
列表对象[起始下标,结束下标 + 1] 左闭右开区间

list1 = ['小明','小花','小猪','小狗','小呗']
list1[0:2] → ['小明','小花']
list1[:2] → ['小明',’小红'] 从头开始截取 下标0的话可以省略
list1[2:] → ['小猪','小狗','小呗'] 截取到末尾,末尾下标省略
list1[1:3] → ['小花','小猪']
list1[-3,-1] → ['小猪','小狗'] 下标可以为负
list1[4:0] → [] 注意截取的方向,第一个下标小于第二个下标,否则返回空
list1[::-1] → ['小呗','小狗','小猪','小花','小明']



## todo 查找
## in 判断
num_list = [1,2,3,4]
1 in num_list → True
场景 与if 连用。
if 1 in [1,2,3,4]:
if [] : 空列表 if判断为False。
## 可能出现的错误
num =[1,2,3,4]
num[4]
报错下标越界。 IndexError: list index out of range
错误一般发生在收集数据代码逻辑错误,列表本身就为空。


### 初学写代码技巧
写几句代码就测试运行一下,多print(变量),把大问题分解成小问题(先把input或先写某一个if分支) 把程序的大概结构写出来,再去写细节。
代码以模仿为主,刚开始谁都不知道怎样去写,会有歧义和可能。所以我们第一次只要根据答案抄一遍,想清楚思路。
第二遍 比葫芦画瓢,举一反一初步具备编程思想和,自己完整解决问题,熟练度。
第三遍后,项目越来越复杂,重复运用之前的知识点,知识点越来越熟练

猜你喜欢

转载自www.cnblogs.com/psy0508/p/9973946.html