一阶段day7-01列表
2018-10-08 本文已影响0人
ATM_shark
列表(list):是Python中的容器类的数据类型,可以用来存取多个数据。列表是可变的,有序的。
可变指的是列表中的元素值和位置以及列表的长度;
有序指的是可以通过下标来获取元素;
字面量:[元素1,元素2,元素3........]
列表中的元素可以是任何类型的数据(整数int,浮点数float,布尔值bool,字符串str,列表list,字典,元祖,集合,函数);
注意:变量也可以作为列表的值;
name='改口费'
list1=[1,4.34,"辣鸡",True,name] #声明一个变量list1,给他赋了一个列表,列表中有5个元素
print(list1) #[1, 4.34, '辣鸡', True, '改口费']
一、列表元素获取(查询)
1、获取单个元素
列表也可以进行的操作包括索引,切片,加,乘,检查成员,同字符串;
列表[下标] 说明:列表一旦确定,列表中的每个元素的下标就确定了。下标范围:0—n-1或者-1—-n;
names=['鸣人','佐助','小樱','卡卡西']
print(len(names))
print(names[0],names[-4]) #鸣人 鸣人
2、获取列表部分元素(切片)——>(结果是列表)
格式和字符串切片一样
print(names[1:3]) #['佐助', '小樱']
print(names[::2]) #['鸣人', '小樱']
print(names[::-2]) #['卡卡西', '佐助']
二、列表增删改
1、增(增加元素)
a、列表.append(元素)——>在列表最后添加一个元素,只能一个一个添加;
films=['绿巨人','钢铁侠','神奇女侠']
films.append('美国队长')
print(films) #['绿巨人', '钢铁侠', '神奇女侠', '美国队长']
b、列表.insert(下标,元素)——>在指定的下标前去添加指定元素;
films.insert(1,'蜘蛛侠') #['绿巨人', '蜘蛛侠', '钢铁侠', '神奇女侠', '美国队长']
print(films)
2、删(删除元素)
a、del 列表[下标]——>删除列表中指定下标对应的元素;
del语句是Python中用来删除数据的语法,可以删除任何数据;
heros=['盖伦','皇子','赵信','提莫']
del heros[-1]
print(heros) #['盖伦', '皇子', '赵信']
b、列表.remove(元素)——>删除列表中指定元素
注意:如果这个元素在列表中存在多个,只删除最前面那一个;
heros.remove('皇子')
print(heros) #['盖伦', '赵信']
c、列表.pop(下标)——>将列表中指定下标对应的元素取出;
列表.pop()——>将列表中最后一个元素取出;
naturs=['鸣人','佐助','小樱','卡卡西']
teather=naturs.pop()
print(teather) #卡卡西
print(naturs) #['鸣人', '佐助', '小樱']
naturs.pop(1)
print(naturs) #['鸣人', '小樱']
3、改(修改列表中的元素)
列表[下标]=新值——>将列表中对应下标的元素用新值替换;
heros=['盖伦','皇子','赵信','提莫']
heros[-1]='刀妹'
print(heros) #['盖伦', '皇子', '赵信', '刀妹']
三、练习
1.遍历列表中的元素
for循环变量列表,拿到的就是列表中的每个元素
numbers = [12, 34, 56, 45, 90, 89]
for x in numbers:
print(x)
=========
for index in range(len(numbers)):
print(index, numbers[index])
作业
1.用一个列表,保存一个班5个学生的成绩,去求这个班的学生的总成绩
scores = [89, 78, 90, 56, 89]
sum1 = 0
for score in scores:
sum1 += score
print(sum1)
2.用一个列表,保存多个人的名字(英文的), 将列表中所有的人的名字首字母大写
names = ['zhangsan', 'XiaoMing', 'lisi', 'wangwu']
方法1:
下标
index = 0
for name in names:
# 取出首字母
first = name[0]
# 判断首字母是否是大写
if first.isupper():
index += 1
continue
# 新的名字
new_name = name.title()
# 修改名字
names[index] = new_name
index += 1
print(names) #['Zhangsan', 'XiaoMing', 'Lisi', 'Wangwu']
====================================
names = ['zhangsan', 'Hu', 'HaHa', 'XiaoMing', 'lisi', 'wangwu', 'Head']
方法二:
for index in range(len(names)):
name = names[index]
# 如果是小写
if name[0].islower():
names[index] = name.title()
print(names) #['Zhangsan', 'Hu', 'HaHa', 'XiaoMing', 'Lisi', 'Wangwu', 'Head']
3.删除上一个列表中,首字母是H的人的名字
names = ['Zhangsan','XiaoMing', 'Lisi', 'Wangwu', 'Head']
names[:] = ['Zhangsan','HaHa', 'XiaoMing', 'Lisi', 'Wangwu', 'Head']
#for name in names[:] #等于:new = names[:]+for name in new:
for name in names[:]:
if name[0] == 'H':
names.remove(name)
print(names) # ['Zhangsan', 'XiaoMing', 'Lisi', 'Wangwu']
====================
names = ['zhangsan', 'HaHa','Hu', 'XiaoMing', 'lisi', 'wangwu', 'Huo']
index = 0
while index < len(names):
name = names[index]
if name[0] == 'H':
del names[index]
continue
index += 1
print(names) #['zhangsan', 'XiaoMing', 'lisi', 'wangwu']
练习:保存一个班的学生成绩,剔除不及格成绩;
grade=[98,88,43,54,79,87,75,65,55]
for x in grade[:]:
if x<60:
grade.remove(x)
print(grade) #[98, 88, 79, 87, 75, 65]
print('===========')
grade=[98,88,43,54,79,87,75,65,55]
x=0
while x<len(grade):
print(x,len(grade))
if 60>grade[x]:
del grade[x]
continue
x+=1
print(grade) #[98, 88, 79, 87, 75, 65]