Day-06 列表
2018-12-29 本文已影响0人
水果坚果燕麦片
1. 什么是列表(list)
列表是python提供的容器型数据类型。可变并且有序的
可变 - 列表中的每个元素的值可变,列表的长度可变,列表中元素的顺序可变
有序 - 列表中每个元素的顺序是固定的,可以通过下标来确定位置
2.列表的字面量:通过[]括起来,里面有多个元素,每个元素用逗号隔开
[1,2,3]
[10,'abc',True]
num = 100;[num,200]
[] --空列表
列表元素的类型可以使任何python支持的数据类型,并且同一个列表中不同元素的数据类型可以不一样
scores = [90,89,100,67]
list1 = [90,10.34,'abc',True,[1,2,3],{'a':10},lamda x: 2*x]
6个元素 任何数据类型都可以作为列表的元素
list2 = [
90,
10.34,
'hello',
{'name':'xiaoming'}
]
元素比较复杂时可以分行写,但是普通数据不能这样写
2.获取列表元素(和字符串获取字符的语法一样)
a. 获取单个元素
列表[下标] - 获取列表中指定下标对应的元素
list1 = [10,20,30]
print(list1[0],list1[-1])
10 30
b. 获取部分元素(切片)
列表[开始下标:结束下标:步长]
movies = ['毒液','功夫熊猫','肖生克的救赎','这个杀手不太冷']
print(movies[1:4:2])
c. 一个一个取出所有元素
for循环直接遍历列表拿到每个元素(操作元素的时候和下标无关)
可以通过遍历元素的对应下标来遍历列表元素(元素的操作和下标有关)
# 直接遍历
for item in movies:
print(item)
# 通过下标来遍历
for index in range(len(movies))
print('下标:',index)
print(movies[index])
练习:统计一个班的学生的成绩,存到一个列表中,求着整个班的学生的平均
sum = 0
list = [90,89,80,70,98,67]
for i in range(len(list)):
sum += list[i]
print('%.2f' %(sum/len(list)))
-----------------------------------
sum = 0
list = [90,89,80,70,98,67]
for i in list:
sum += i
print('%.2f' %(sum/len(list)))
3.增(添加列表元素)
a.append
列表.append(元素) - 在指定的列表最后添加指定的元素
animes = ['海贼王','火影忍者','秦时明月']
animes.append('一拳超人')
print(animes)
结果如下:
['海贼王', '火影忍者', '秦时明月', '一拳超人']
b.insert
列表.insert(下标,元素) - 在指定的下标前插入指定元素
animes.insert(2,'犬夜叉')
结果如下:
['海贼王', '火影忍者', '犬夜叉', '秦时明月', '一拳超人']
2.删
a.del
del 列表[下标] - 删除列表中指定下标对应的元素
注意:del是python的关键字,可以用它删除任何数据
b.remove
列表.remove(元素) - 删除列表中第一个的指定元素
注意:被删除的元素在列表中必须是存在的 不然会报错
c.pop
列表.pop() - 将列表中最后一个元素从列表中取出,会返回取出来的元素
列表.pop(下标) - 将列表中指定下标对应的元素从列表中取出,会返回取出来的元素
del animes[-2]
print(animes)
结果如下:
['海贼王', '火影忍者', '犬夜叉', '一拳超人']
animes.remove('海贼王')
['火影忍者', '犬夜叉', '一拳超人']
练习:用一个列表统计一个班的学生年龄(控制台不断输入年龄值,直到end为止),然后删除所有小于18岁的年龄
ages = []
age = input('年龄')
while age != 'end':
ages.append(int(age))
age = input('年龄')
for age in ages[:]:
if age < 18:
ages.remove(age)
print(ages)