1.什么时候用列表
需要用一个变量去同时保存多个数据
2.什么是列表(list)
列表是python内置的容器型数据类型(序列),可变(支持增删改)并且有序(支持下标操作)
用中括号将多个元素括起来,多个元素之间用逗号隔开:[元素1,元素2,元素3,...]
3.列表中元素
- python内置的数据类型,或者是程序员自定义类型的数据都可以;
- 不同元素的类型可以不一样
- 注意:赋值运算表达式不能作为列表元素,其他都可以
list1 = [123,123.12,True,'abc',[1,2,3]]
print(list1)
num1 = 10
list2 = [num1,100,100+200,20>num1]
print(list2)
scores = [90,80,70,100,96,60,54,30,85,73,84]
4.查 - 获取列表元素
- 获取单个元素(和字符串一样):列表[下标]
names = ['jack','marry','maggie','jimmy','tom']
- 获取部分元素-切片(和字符串一样)
列表[开始下标:结束下标:步长]
列表切片的结果是列表
print(names[1:4]) # ['marry','maggie','jimmy']
print(names[1:4:-1]) # []
print(names[::-1]) # ['tom', 'jimmy', 'maggie', 'marry', 'jack']
- 遍历
a.直接遍历
for 元素 in 列表: # 变量取到的是元素
循环体
b.通过下标遍历
for 变量 in range(len(列表)): # 变量取到的是下标
循环体
"""
for name in names:
print(name)
for index in range(0,len(names),2):
print(index,names[index])
练习:将班级学生的成绩保存到scores中,求平均成绩和不及格人数
scores = [90,80,70,100,96,60,54,30,85,73,84]
scores_sum = 0
count = 0
for score in scores:
scores_sum += score
if score < 60:
count += 1
print('平均成绩是%.2f,不及格人数有%d人' %(scores_sum/len(scores),count))
# 补充求和函数 sum
# sum(序列) - 求序列中所有元素的和;序列要求元素类型一致,并且元素支持求和运算
# print(sum(scores),sum(range(101)))
5. -添加元素
- 列表.append(元素) - 在指定的列表最后添加元素
persons = ['phil','cam','joe','jay','stella','alex']
persons.append('clair')
print(persons)
- 列表.insert(下标,元素) - 在指定列表的指定下标前插入指定元素
numbers = [1,20,34,50]
numbers.insert(2,22) # 插在34的前面
print(numbers)
numbers.insert(0,1000)
print(numbers)
练习:输入一个数字,将它添加到一个有序列表中,要求添加进去后不改变从小到大,或者从大到小排列的顺序
[1,20,100,200] 输入:50 [1,20,50,100,200]
输入:0 [0,1,20,100,200]
# 思路:找到第一个比输入的数字大的数字对应的下标,然后插入到这个下标前,如果原来的数字都比输入的小,就添加到最后
num = int(input('输入一个数字:'))
numbers = [1,20,100,200]
for index in range(len(numbers)):
if num <= numbers[index]: # 如果num小于下标对应的元素
numbers.insert(index,num)
break # 找到一个比num大的就break掉
else:
numbers.append(num)
print(numbers)
6.删 - 删除元素
- del 列表[下标] - 将指定列表中指定下标对应的元素删除
delete_list = [1,2,3,4,5]
del delete_list[2]
print(delete_list)
- 列表.remove(元素) - 将指定列表中第一个指定元素删除
如果元素不存在,会报错
- 列表.remove(元素) - 将指定列表中第一个指定元素删除
delete_list.remove('5')
print(delete_list)
- 3)
列表.pop() -移除列表中最后一个元素,返回被移除的元素
列表.pop(下标) -移除列表中指定下标对应的元素,返回被移除的元素
delete_list = [1,2,3,4,5]
del_name = delete_list.pop()
print(delete_list,del_name)
del_name = delete_list.pop(1)
print(delete_list,del_name)
- 清空:列表.clear() - 删除列表中所有的元素
names.clear()
print(names) # []
7.改 - 修改列表中的元素
列表[下标] = 新值 - 将列表中指定下标对应的元素改为新值
nums = [1,2,3]
nums[0] = 100
print(nums)
in / not in
元素 in 列表 --判断一个元素是否在列表中
print([1,2] in [1,2,3,4,[1,2]]) # True
print(1 in nums)