for x in range(5): for y in range(2, 5): print(x, y) x取值范围:0,1,2,3,4 第1次 x=0: 执行循环体对应的for循环, y取值范围是: 2,3,4 第1次 y=2: print(x, y) -> print(0, 2) 第2次 y=3: print(x, y) -> print(0, 3) 第3次 y=4: print(x, y) -> print(0, 4) 内循环结束 第2次 x=1: 执行循环体对应的for循环, y取值范围是: 2,3,4 第1次 y=2: print(x, y) -> print(1, 2) 第2次 y=3: print(x, y) -> print(1, 3) 第3次 y=4: print(x, y) -> print(1, 4) 内循环结束
1)列表是容器型数据类型(序列),将[]z作为容器的标志,里面多个元素用逗号隔开:[元素1, 元素2, 元素3,...] 2)列表是可变的(元素的个数、值和顺序可变) - 增、删、改;列表是有序的 - 支持下标操作 3)列表对元素的要求:没有要求(不管什么类型的数据都可以作为列表的元素) ''' 1)空列表 list1 = [] list2 = [ ] print(type(list1), type(list2)) # <class 'list'> <class 'list'> print(bool(list1), bool(list2)) # False False print(len(list1), len(list2)) # 0 0 2) 列表可以同时保存多个数据 list3 = [89, 90, 76, 99, 58] print(list3) list4 = ['谭', 3, 100, True] print(list4)
查分为三种情况:获取单个元素、切片、遍历(一个一个的取)
语法: 列表[下标] 功能:获取列表中指定下标对应的元素 说明: 列表 - 任何结果是列表的表达式,比如:保存列表的变量、具体的列表值等 [] - 固定写法 下标 - 下标又叫索引,是元素在有序序列中位置信息。 python中有序序列中每个元素都有两组下标值,分别是:从前往后从0开始递增的下标值;从后往前从-1开始递减的下标值 注意:下标不能越界
list3 = [89, 90, 76, 99, 58] list3[下标] [89, 90, 76, 99, 58][下标] names = ['戴安娜', '托儿索', '小学憎', '奥巴马', '卡尔玛', '拉克丝'] print(names[0]) # 戴安娜 print(names[-1]) # 拉克丝 print(names[-2]) # 卡尔玛 print(names[-5]) # 托儿索 print(names[10]) # 报错
方式1 - 直接获取列表中的每个元素
for 变量 in 列表: 循环体 方式2 - 先获取到每个元素的下标值,然后通过下标再获取元素 for 下标 in range(len(列表)): 循环体 for 下标 in range(-1, -len(列表)-1, -1): 循环体 range(len(列表)) == range(列表中元素的个数) 方式3 - 同时获取列表中每个元素和元素对应的下标 for 下标,元素 in enumerate(列表): 循环体 print('----------------华丽的分隔线--------------') for index in range(len(names)): print(index, names[index]) print('----------------华丽的分隔线--------------') for index, item in enumerate(names): print(index, item)
练习1: 统计不及格人数
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99] count = 0 for x in scores: if x < 60: count += 1 print('不及格人数:', count)
练习2:统计列表中整数的个数
list7 = [89, 9.9, 'abc', True, 'abc', '10', 81, 90, 23] count = 0 for x in list7: if type(x) == int: count += 1 print(count)
练习3:求nums中所有偶数的和
nums = [89, 67, 56, 90, 98, 30, 78, 51, 99] sum1 = 0 for x in nums: if x % 2 == 0: sum1 += x print('所有偶数的和:', sum1)
movies = ['五十六度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪'] print(movies) # ['五十六度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪'] movies.append('肖生克的救赎') print(movies) # ['五十六度灰', '哥斯拉大战金刚', '桃花侠大战菊花怪', '肖生克的救赎'] movies.insert(2, '沉默的羔羊') print(movies) # ['五十六度灰', '哥斯拉大战金刚', '沉默的羔羊', '桃花侠大战菊花怪', '肖生克的救赎']
2)批量添加
列表1.extend(列表2) - 将列表2元素全部添加到列表1的后面 movies.extend(['让子弹飞', '触不可及', 'V字仇杀队']) print(movies) # ['五十六度灰', '哥斯拉大战金刚', '沉默的羔羊', '桃花侠大战菊花怪', '肖生克的救赎', '让子弹飞', '触不可及', 'V字仇杀队']
练习:将scores中所有的及格的分数提取出来
scores = [89, 67, 56, 90, 98, 30, 78, 51, 99] scores2 = [] for x in scores: if x >= 60: scores2.append(x) print(scores2)