第二周 Day1 — Python列表
第二周 Day 1 — 列表
一、认识列表
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯']
for hero in heroes:print('我喜欢的英雄是', hero)
1. 什么是列表
列表是容器型数据类型,将[]
作为容器标志,里面多个元素用逗号隔开:[元素1, 元素2, 元素3, 元素4,...]
。
列表是可变的(可变值得是元素的个数、值和顺序可变)
列表是有序的(元素有固定位置信息——下标)
元素:任何Python支持的类型的数都可以作为列表,同一个列表的元素的类型可以不同。
list1 = [] # 空列表
list2 = [10, 20, 10, 'abc',12.34, [10, 20], (10, 20), {'a':100},lambda x: x * 2]
二、列表的增删改查
1.“查”—获取元素
获取单个元素
语法: 列表[下标] — 获取列表中指定下标的元素
下标又叫索引,代表元素在序列中的位置信息。
下标值的范围有两种:
a.元素从左往右对应的下标是从0开始依次增加。
b.元素从右往左对应的下标是从-1开始依次减少。
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[0]) # 亚索 print(heroes[1]) # 永恩 print(heroes[2]) # 劫print(heroes[-1]) # 金克斯 print(heroes[-2]) # 卡莉斯塔print(heroes[6]) # 下标越界 print(heroes[-7]) # 下标越界
遍历
2.1 方法一:直接获取元素。
""" for 变量 in 列表:循环体 """ for x in heroes:print('x:', x)
练习:定义一个列表保存一个班所有学生的分数。
# 1. 求所有学生的总分 # 2. 统计不及格学生的分数 scores = [45, 67, 89, 90, 77, 23, 50] sums = 0 count = 0 for score in scores:sums += scoreif score < 60:count += 1 print('总分:', sums) print('不及格学生的个数:', count)
2.2 方法二:通过下标遍历元素。
len(列表) — 获取列表长度(获取列表元素的个数)
""" for 变量 in range(len(列表)):循环体 """ scores = [45, 67, 89, 90, 77, 23, 50] for index in range(len(scores)):print(index) # 0 1 2 3 4 5 6print(scores[index]) # 45 67 89 90 77 23 50
练习:打印位置(下标)在偶数位上的所有元素。
scores = [45, 67, 89, 90, 77, 23, 50] for index in range(len(scores)):if not index & 1:print(scores[index])
获取部分元素(列表切片)— 返回一个小列表。
语法: 列表[开始下标:结束下标:步长]
步长为正:[开始下标,结束下标),从前往后,每次下标增加步长。
步长为负:[开始下标,结束下标),从后往前,每次下标增加步长。
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[1:4:1]) # ['永恩', '劫', '薇恩', '卡莉斯塔'] print(heroes[1:4:2]) # ['永恩', '薇恩', '金克斯'] print(heroes[0:-1:1]) # ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔'] print(heroes[5:1:1]) # [] print(heroes[1:5:-1]) # [] print(heroes[-1:-5:1]) # [] print(heroes[-1:0:-2]) # ['金克斯', '薇恩', '永恩']
3.1 省略步长
列表[开始下标:结束下标] == 列表[开始下标:结束下标:1]
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[1:5]) # ['永恩', '劫', '薇恩', '卡莉斯塔'] print(heroes[-5:-2]) # ['永恩', '劫', '薇恩'] print(heroes[0:-3]) # ['亚索', '永恩', '劫'] print(heroes[-1:2]) # []
3.2 省略开始下标
列表[:结束下标:步长]
列表[:结束下标]
如果步长为正:开始下标省,就从第一个元素往后取。
如果步长为负:开始下标省,就从最后一个元素往前取。
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[:3]) # ['亚索', '永恩', '劫'] print(heroes[:3:-1]) # ['金克斯', '卡莉斯塔'] print(heroes[:-3:1]) # ['亚索', '永恩', '劫'] print(heroes[:-5:-2]) # ['金克斯', '薇恩'] print(heroes[:4:3]) # ['亚索', '薇恩']
3.3 省略结束下标
列表[开始下标::步长]
列表[开始下标:]
如果步长为正:结束下标省,就从开始下标元素开始从前往后取,取到最后一个元素为止。
如果步长为负:结束下标省,就从开始下标元素开始从后往前取,去到第一个元素为止。
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[1:]) # ['永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[-3:]) # ['薇恩', '卡莉斯塔', '金克斯'] print(heroes[2::2]) # ['劫', '卡莉斯塔'] print(heroes[-3::-1]) # ['薇恩', '劫', '永恩', '亚索']
3.4 一起省
列表[::步长]
如果步长为正:从前往后取,取整个列表。
如果步长为负:从后往前取,取整个列表。
heroes = ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[::2]) # ['亚索', '劫', '卡莉斯塔'] print(heroes[:]) # ['亚索', '永恩', '劫', '薇恩', '卡莉斯塔', '金克斯'] print(heroes[::-1]) # ['金克斯', '卡莉斯塔', '薇恩', '劫', '永恩', '亚索']
2.“增” — 往列表中添加元素
列表末尾追加
列表.append(元素) — 在指定列表的最后追加一个指定的元素
movies = ['看不见的人', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公'] movies.append('触不可及') print(movies) # ['看不见的人', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公', '触不可及']
列表内插入
列表.insert(下标, 元素) — 在列表指定下标对应的元素前插入指定元素
movies = ['看不见的人', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公'] movies.insert(1, '星际穿越') print(movies) # ['看不见的人', '星际穿越', '肖申克的救赎', '唐人街探案', '小森林', '忠犬八公']
练习:输入一个学生的成绩,将输入的成绩插入到列表scores,并且保证插入后不影响从大到小的规律。
scores = [100, 97, 95, 87, 82, 82, 80, 76, 72, 65, 60, 57, 53, 40]
score = int(input('输入一个成绩:'))
for index in range(len(scores)):if score > scores[index]:scores.insert(index, score)break
else:scores.append(score)
print(scores)
3.“删” — 删除列表中某个元素
del 列表[下标] — 删除列表中指定下标对应的元素(下标不能越界)
# a.删除变量
name = '小明'
del name
print(name) # 报错# b. 删除列表中指定元素
nums = [10, 1, 2, 32]
del nums[-1]
print(nums) # [10, 1, 2]# c. 删除整个列表
del nums
print(nums) # 报错
列表.remove(元素) — 删除列表中指定元素(如果指定元素有多个,只删最前面那一个;如果指定元素不存在,会报错!)
TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年']
TVs.remove('甄嬛传')
print(TVs) # ['琅琊榜', '破产姐妹', '庆余年']TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传']
TVs.remove('甄嬛传')
print(TVs) # ['琅琊榜', '破产姐妹', '庆余年', '甄嬛传', '甄嬛传']TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年']
TVs.remove('大江大河')
print(TVs) # 报错ValueError: list.remove(x): x not in list
列表.pop() — 取出列表中最后一个元素
列表.pop(下标) — 取出列表中指定下标对应的元素
TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传', '白夜追凶']
del_items = TVs.pop()
print(TVs, del_items) # ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传'] 白夜追凶TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年','甄嬛传', '甄嬛传', '白夜追凶']
TVs.pop(1)
print(TVs) # ['琅琊榜', '甄嬛传', '庆余年','甄嬛传', '甄嬛传', '白夜追凶']
4.“改” — 修改元素的值
语法:列表[下标] = 值 — 将列表中指定下标对应的元素修改成指定的值
subject = ['高数', '大物', 'c语言', '毛概']
subject[0] = '英语'
print(subject) # subject = ['英语', '大物', 'c语言', '毛概']
练习:已经列表scores,将列表中低于60分的成绩全部修改成60分。
scores = [89, 9, 78, 23, 76, 99, 66]
for index in range(len(scores)):if scores[index] < 60:scores[index] = 60
print(scores) # [89, 60, 78, 60, 76, 99, 66]
5. in
和 not in
值 in 列表 — 判断列表中是否存在指定值对应的元素
值 not in 列表 — 判断列表中是否不存在指定值对应的元素
TVs = ['琅琊榜', '破产姐妹', '甄嬛传', '庆余年', '甄嬛传', '甄嬛传', '白夜追凶']
print('甄嬛传' in TVs) # True
print('甄嬛传2' in TVs) # False
print('甄嬛传2' not in TVs) # True
第二周 Day1 — Python列表相关推荐
- 第二周学习python总结
第二周学习python总结 列表和元组的区别 元组也是多个元素按照一定的顺序构成的序列.元组和列表的不同之处在于,元组是不可变类型,这就意味着元组类型的变量一旦定义,其中的元素不能再添加或删除,而且元 ...
- 第二周练习 # Python # Cilay
· 回文数的判断 ...
- Python语言程序设计——第二周:Python基本图形绘制
深入理解Python语言 计算机技术的演进 五种编程语言的多样初心 Python语言的特点 "超级语言"的诞生 实例2:Python蟒蛇绘制 #PythonDraw.py impo ...
- 吴恩达Coursera, 机器学习专项课程, Machine Learning:Advanced Learning Algorithms第二周编程作业...
吴恩达Coursera, 机器学习专项课程, Machine Learning:Advanced Learning Algorithms第二周所有jupyter notebook文件: 吴恩达,机器学 ...
- 第二周python作业——字符串、字典、列表
第二周作业 字符串 基础 进阶 字典 列表 1. 基础题 2. 进阶题 3. 列表推导式 第二周作业 选择题 填空题 编程题 字符串 基础 输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7 ...
- python第二周day3
python第二周day3(9.24) 1.day7字典作业更改版 # 定义一个列表,在列表中保存6个学生的信息(学生信息中包括: 姓名.年龄.成绩(单科).电话.性别(男.女.不明) ) stude ...
- python第二周day2
python第二周day2(9.23) 1.day6列表作业更改版 import random # 随机操作 # random.randint(0, 100) # **1.创建一个列表,列表中有10个 ...
- python第二周day5
python第二周day5(9.27) 1.day9字符串作业更改版 # *1.1输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7-位上的字符) # 例如: 输入**'abcd1234 ' ...
- Python学习第二周总结
Python学习第二周总结 第二周主要学了python中几种常见的数据结构,分别是列表.元组.字符串.集合.字典重点就是怎么创建和使用这些数据结构,操作方法更是一定要掌握的. 一.列表 1.1 定 ...
最新文章
- JAVA 和.NET在安全功能的比较
- 杭电1019 Least Common Multiple(已解决)
- TabSpec和TabHost实例
- 什么是方向图乘积定理_初中数学竞赛试题——正多边形与托勒密定理
- linux docker run怎么退出,详解如何进入、退出docker容器的方法
- mysql raiserror_SQL Server自定义异常的使用raiserror
- http抓包实战 pdf_抓包实战 | 浏览器里的HTTP请求到底是如何完成的?
- python三层设计_推荐3个Python实现算法和设计模式的工具
- [poj 3436]最大流+输出结果每条边流量
- j2ee高并发时使用全局变量需要注意的问题
- 【紫书】(UVa12096) The SetStack Computer
- [Git]git教程
- 苹果计算机重装系统步骤,苹果笔记本电脑重装mac系统教程
- linux摄像头V4L2 subdev,V4L2 subdev
- matlab空间曲面拟合,【Matlab】离散点拟合曲面
- 关于拖延症的一些小思考
- 核心概念 —— 契约(Contracts)
- windows的发展历程(适合小白科普)
- adb 获取蓝牙 mac地址 、wifi mac地址的方法
- 工具下载( 思维导图、原型图)
热门文章
- 废弃的marquee标签
- 《项目管理中的8项人际关系技能》读书笔记1
- 从it行业的状态看就业
- jquery判断自定义属性data-val
- oracle数据库导入sql文件
- php单页程序,动态php单页站群源码,泛解析单页循环暴力域名站群系统
- 云管升级助力海格通信创新之路提速-嘉为案例
- python计算机语言论坛,自学IT吧论坛国外大神-计算机科学及 Python 编程导论-中文字幕编程语言资源天地 - www.zxit8.com...
- opencv柱面投影
- unity通关射线检测实现3d模型自适应地形起伏