1、什么是列表 list
列表是python提供的容器型数据类型(序列),可变、有序
- 可变(元素的个数、值、顺序可变) —— 支持 增、删、改
- 有序 —— 支持下标操作
2、列表数据:[元素1,元素2,······]
元素: 可以是任何数据类型(值、赋值后的变量、除了赋值以外的运算表达式)
不同元素的类型可以不一样
list1 = [123, '11', 11.0 + 22, True]
num = 10
list2 = [num, num*10+2, 'abc'.count('a')]
print(list2)
3、列表元素的操作
3.1 查 - 获取列表中的元素
1)获取单个元素; 列表[下标] - 获取列表中指定下标的元素 返回时类型不变
————下标不能越界
2)获取部分元素(切片); 结果返回的是一个列表
3)遍历
直接遍历获取元素
——变量直接取到得是列表中的元素
间接获取下标遍历
for item in list2:
print(item)
for index in range(len(list2)):
print(list2[index])
isinstance函数
isinstance(数据,类型)
判断指定的数据是否是指定的类型
练习: 统计一个列表中整型元素的个数
list3 = [23, 78.2, 'age', [12,3], 290]
s = 0
for item in list3:
if isinstance(item, int):
s += 1
print(s)
3.2 增 —— 添加元素
1)
列表.append(元素) —— 在列表最后添加一个元素(修改原列表,不会产生新的列表)
films = ['1', '2', '3', '4', '5']
films.append('6')
print(films)
列表.insert(下标,元素) —— 在列表指定下标前插入一个元素
films.insert(2, '2.5')
print(films)
练习:一个有序的数字列表,输入一个数,将这个数插入到列表中,
要求插入后不改变列表数字大小排序
nums = [2, 12, 23, 43, 55]
num1 = 13
for index in range(len(nums)):
if num1 < nums[index]:
nums.insert(index, num1)
break
else:
nums.append(num1)
print(nums)
3.3 删 删除列表中的元素
1)
del 列表[下标] —— 删除列表中指定下标的元素,不能越界
nums = [2, 12, 23, 43, 55]
del nums[3]
print(nums)
2)
列表.remove(元素)
删除列表中指定的元素
如果删除的元素在列表中有多个,只删除最前面的哪一个
如果删除的元素在列表中不存在,程序会报错 ValueError: list.remove(x): x not in list
nums.remove(23)
print(nums)
3)
列表.pop() —— 取出列表中最后一个元素
列表.pop(下标) —— 取出列表中指定下标对应的元素
nums = [2, 12, 23, 43, 55]
del_num = nums.pop()
print(del_num, nums)
练习: 删除列表中成绩低于60的所有成绩
利用下标从前往后遍历会越界
直接从前往后遍历会漏掉
下标从后往前取
scores = [70, 45, 50, 87, 67, 30, 100]
for index in range(len(scores)-1, -1, -1):
if scores[index] < 60:
del scores[index]
print(scores)
使用while循环控制下标在不删除的时候才增加1,删除的时候不变。
scores = [70, 45, 50, 87, 67, 30, 100]
index = 0
while index < len(scores):
if scores[index] < 60:
del scores[index]
continue
index += 1
print(scores)
复制一个新的列表,从新列表中取值
scores = [70, 45, 50, 87, 67, 30, 100]
for num1 in scores[:]:
if num1 < 60:
scores.remove(num1)
print(scores)
将满足条件的值添加到新列表中
scores = [70, 45, 50, 87, 67, 30, 100]
del_scores = []
for index in range(len(scores)):
if scores[index] < 60:
del_scores.append(scores[index])
for num1 in del_scores:
scores.remove(num1)
print(scores)
3.3 改 —— 修改元素的值
列表[下标] = 新值
修改指定下标对应的元素为新值
下标不能越界
scores = [70, 45, 50, 87, 67, 30, 100]
scores[1] = 99
print(scores)
4、列表运算符
数学运算 + *
列表1 + 列表2 ——> 将两个列表中的元素合并产生一个新的列表
列表1 * N ——> 列表重复N次 产生一个新的列表
比较运算: ==,!=
一般只比较相等或者不相等
in / not in
元素 in 列表 ——> 判断列表中是否包含指定的元素
len(列表) ——> 获取列表中元素的个数
list() ——> 将指定数据转换成列表
所有的序列可以转换成列表;不是序列转换不成列表
会将序列中的元素作为列表元素
max / min
max(列表) 获取列表中元素的最大值
min(列表) 获取列表中元素的最小值
注意:1、列表中元素类型必须一致
2、数据支持比较运算符