python语法 序列和列表
20200713
序列
通过操作索引操作序列,,带有索引的数据即序列,第一个是0(索引号),分为可变(字典等)and 不可变序列(字符串、元祖)。
列表
如果使用列表呢?
1.创建列表(列表中的元素,用逗号分开)
列表可以保存任意元素,甚至函数
通过索引,获取列表中的元素;索引就是元素在列表中的位置,第一个是0,第二个是1 ,类推。
用len可获取列表元素长度(个数),列表的长度就是最大索引值+1
索引可以是负数,如果索引是负数,从后往前, -1是最后一个,依次类推
切片
是从现有列表中,获取一个子列表
获取列表等中,某几个元素
通过切片获取元素时,会包括起始位置元素,不包括结束位置元素,即,左闭右开
通过切片获取一个新的列表,不会影响原来的列表
思考和分析:
起始位置和结束位置可不可以不写?
如果省略结束位置?
如果开始和结束位置都不写,那么就是取全部元素。
步长就是取数步距,默认1
思考:步长可以负数吗?
可以的,只是取的元素内容反过来了
序列的通用操作
“+” 可以拼接列表内容
“*” 可将列表重复指定的次数。
in 和 not in
in :用来检测指定元素是否在列表中。返回true 或 false
not in:用来检测指定的元素是否不在…,返回true 或 false
min() 获取列表中最小值 max()…最大值
**s.index(【】)**可获取指定元素在列表中的位置
**s.count()**获取指定元素在列表中出现的次数
*s.index(【】)**可获取指定元素在列表中的位置
当有多个相同元素,则依然可以通过起始、结束位置等指定
**s.count()**获取指定元素在列表中出现的次数
修改列表
也可以用关键字 DEL 来删除元素,用索引号哦
通过切片修改
a多出来的 自动插在前面哦
必须用序列,引号带上才ok
插入元素
列表中三个元素替换: 1. 先找到三个元素(定步长取出)2. 让其=‘雷神’ 报错 尝试用1个元素替换三个元素不行哦。
如果3个替换2个是可以的。
即:当设置了步长的时候,序列中元素的个数必须和切片中元素个数一致。
通过切片来删除元素 自行思考!!
不可变列表 不可以用切片等,直接转换为可变序列即可,如下两图
**s.append()**向列表最后,添加元素
**s.insert()**向列表中指定位置插入一个元素,第一个参数是要插入的位置,第二个参数是插入的元素名
**s.extend()**使用新的序列来扩展当前序列
也可以用运算符 +=
清空列表
**s.pop()**根据索引删除并返回执行的元素,注意与del 区别
同时,不传递索引默认删除最后一个
**s.remove()**删除指定值的元素, 没有返回值,没必要
**s.reverse()**用来反转列表
**s.sort()**用来对列表中的元素进行排序
默认升序
降序 是 s.sort(reverse=true)
遍历列表 一般通过for循环遍历列表
将列表中的元素取出来,这样才能操作,不然在列表中,只显示,无法操作哦。
索引值用循环代替
不知道长度,那么用len进去 配合
一般通过for循环遍历列表
每执行一次…下图有错别字 “没”
**range()**函数 默认从0开始
可以结合for循环用range函数
输出13579
最好完整写法
知识点回顾
作业和练习
1.练习以上代码
2. a=【1,2,3,4,5,6】不用函数实现列表反转并写推导过程。提示可以用切片 倒叙。
推导的过程是指, 加起始,加结束, 不加步长,一点点推出。
3.lst1=【11,22,33】 lst2=【22,33,44】 获取内容相同的元素。
3. 给用户9次机会,猜1-10个数字随机来猜。如果随机的数字和用户输入的数字一致表示正确。要让其永远猜不对, 即最后两次机会时,就是怎么都不对哦。
提示用 import random 模块。 如果不用随机数也ok。