认识列表
1、列表是python中的容器类数据类型,可以用来存储多个数据
是可变的,有序的
可变是指列表中元素的值、位置和长度可变,列表可以进行增删改
有序指可以通过下标获取元素
2、字面量:
[元素,元素,元素,……]
列表中的元素可以是任何类型的数据,包含整型浮点等数据类型,
还可以有列表、字典、元祖、集合、函数、类的对象等,变量也可以作为列表中的元素
list = [1,32,"abc"]
声明了一个变量list,数据类型是列表,包含3个元素1,32,"abc"
name = "路飞"
names = ['小明','小花','小红',name]
获取列表中的元素
1、获取单个元素
"""
列表[下标]
说明:列表一旦确定,列表中每个元素的下标就确定了,范围0列表长度-1或-1-列表长度
"""
2、获取多个元素(切片)---> 结果是列表
'''
和字符串切片一样
列表[起始下标:结束下标],列表[起始下标:结束下标:步长]
从起始下标开始,获取到结束下标前为止
列表中元素的增删改
films = ['Iron Man','蜘蛛侠','逐梦演艺圈','小时代']
1、增加元素
'''
a、列表.append(元素)
在列表最后添加一个元素
b、列表.insert(下标,元素)
在指定的下标前添加指定元素
'''
films.append('Captain America')
films.insert(1,"Halk")
print(films)
2、删除元素
'''
a、del 列表[下标]
删除列表中指定位置的元素
b、列表.remove(元素)
删除列表中指定元素
如果该元素在列表中有多个,只删除第一个
c、列表.pop()
将列表中最后一个元素取出
列表.pop(下标)
将列表中指定下标对应的元素取出
'''
heros = ['盖伦','石头','劫','亚索']
del heros[2]
print(heros)
heros.remove('盖伦')
print(heros)
hero = heros.pop
3、修改列表中的元素
'''
列表[下标] = 新值
修改指定下标对应的元素
'''
teacher = ['aaa','bbb','ccc']
teacher[0]= 'ddd'
print(teacher)
列表相关运算
1、列表加法运算+
"""
列表1 + 列表2
将列表1和列表2中的元素合并,产生一个新的列表
"""
list1 = [1,2,3]
list2 = ['a','b','c']
list3 = list1+list2
print(list3)
2、列表乘法运算*
"""
列表*n
列表中的元素重复n次,产生一个新的列表
"""
print(list1*3)
3、比较运算
'''
列表1 == 列表2
判断两个列表元素是否相等
4、补充:
是否相等的两种方式:==和is
一个变量有id、value和type三个元素
id:数据在内存中的地址
value:数据的值
type:数据的类型
Python中存数据存的是数据的id,取出时取出的是value
变量给变量赋值,赋的是地址(id)
==:判断的是值是否相等,或列表中的元素是否相等
is:判断的是地址是否相等
'''
list15 = [1,2,3]
list25 = [1,2,3]
print(list15[0] is list25[0])
list21 = ['a','aa','aaa']
list22 = list21#将21的地址赋给22
list22.append('aaaa')
print(list21)
list23 = list21[:]
list23.pop(0)
print(list21)
总结:
用一个列表给另一个列表赋值时,如果是直接赋值,
可能会因为修改其中一个列表的元素而改变另一个,
若不想相互影响,直接赋切片或者直接拷贝
列表相关方法
1、元素1 in 列表1
元素1是否是列表1的元素
元素2 not in 列表2
元素2是否不是列表2的元素
'''
2、len()
'''
len(列表)--->获取列表长度
'''
3、max()和min()
'''
max(列表)--->获取列表中元素最大值
min(列表)--->获取列表中元素最小值
ps:
a、列表中元素的数据类型必须一致
b、列表中元素必须支持>,<操作
'''
4、list(数据)
'''
list(数据)--->将指定数据转化乘列表
ps:只有序列可以转化为列表
序列:字符、range、列表、字典、元祖、集合、迭代器
'''
5、'''方法count()
列表.count(元素)--->获取指定元素在列表中的个数
'''
6、extend()
'''
列表.extend(序列)--->将序列中的元素添加到列表中
'''
7、index()
'''
列表.index(元素)--->获取指定元素在列表中的下标
ps:如果元素在列表中有多个,获取第一个该元素的下标
若元素不存在则报错
'''
8、reverse()
'''
列表.reverse()
将列表中的元素倒序
'''
9、sort()
'''
列表.sort()--->将列表中的元素有小到大排序
列表.sort(reverse = True)--->将列表中的元素有大到小排序
ps:
a、列表中元素的数据类型必须一致
b、列表中元素必须支持>操作
'''
10、sorted()
'''
将原列表升序排序,生成新列表,不改变原列表顺序
score = [1,52,32,4,35]
new_score = sorted(score)
print(new_score)
print(score)
也可以new_score = sorted(score,reverse = True)
'''
11、copy()
'''
列表.copy--->将列表中的元素复制一份,产生一个新列表,跟列表[:]功能一样
D07练习题
通过for循环直接遍历一个列表,拿到的就是列表中每个元素
'''numbers = [1,2,3,4,5]
for x in numbers:
print(x)
for index in range(len(numbers)):
print(index,number[index])'''
"""
1、用一个列表保存5个学生的成绩,去求这个班学生的总成绩
grade = 0
grades = [13,65,87,98,66]
for x in grades:
grade += x
print(grade)
2、用一个列表,保存多个人的名字(英文),将列表中所有人的名字首字母大写
names = ['harry','loly','Huang','coco','james','haha']
for index in range(len(names)):
name = names[index]
names[index] = name.upper()
print(names)
3、删除一个列表中,名字首字母是H的人的名字
for name in names[:]:
if name[0] == 'H':
names.remove(name)
print(names)
index = 0
while index < len(names):
name = names(index)
if name[0] == 'H':
del name[index]
continue
index += 1
print(names)
"""
4、用一个列表遍历一个班成绩,删除不及格的成绩
gradess = [12,45,66,44,22,89,90]
'''
for grade1 in gradess[:]:
if grade1 < 60:
gradess.remove(grade1)
print(gradess)
'''
index = 0
while index < len(gradess):
grade = gradess[index]
if grade < 60:
gradess.pop(0)
continue
index += 1
print(gradess)