三岁和你一起学编程,最白的白话和你一起学!
什么是列表
列表(list)是包含0个或多个对象引用的有序序列,属于序列类型。
列表长度内容可以自由变换,列表的增加,删除,变换都比较方便,没有长度限制,元素类型也可以随意,使用灵活。
列表是序列中经常使用,而且较为方便的一种。
列表的创建
列表是存储任意数据类型的集合,用[ ] 来表示开始和结束,各个元素之间采用逗号隔开。
实例;
>>> list1 = [] #创建空列表 >>> list2 = [1, 2, 3] #创建数字型列表 >>> list3 = ['三岁', '学', '编程']#创建字符串型列表 >>> list4 = ['三岁', 1, '编程', 2]#创建混合型列表
特点说明:
- 列表名 = [元素1, 元素2,……]
- 列表可以无元素,称为空列表,长度为0
- 列表中的数据类型为任意,可以不同
- 列表可以使用len() 函数取得类表长度
- 列表可以修改长度也会随之改变
len() 函数的实例
>>>len(list1) >0 >>>len(list2) >3 >>>len(list3) >3 >>>len(list4) >4
list() 函数说明
list() 函数和int() 函数相似,可以把其他类型的内容转换为列表
但是不是所有的数据类型都可以转换,主要是转换字符串和元组类型。
其中 整型和浮点型是绝对不行的
#判定整型和浮点型 >>>print(type(list(12))) #type() 检测数据类型 >TypeError: 'int' object is not iterable >>>print(type(list(12.0))) >TypeError: 'flost' object is not iterable #查看元组和字符串产生的结果及类型 >>>print(type(list())) ><class 'list'> >>>print(list()) >[] >>>print(type(list('三岁学编程'))) ><class 'list'> >>>print(list('三岁学编程')) >['三', '岁', '学', '编', '程']
列表切片
切片就如同烧菜时把菜切片取得其中一部分的操作。
列表的切片是通过索引的方式来访问所需要的内容
切片索引
切片的索引分为顺序索引与逆序索引
顺序索引第一位从0开始往后递推 逆序索引最后一位从-1开始往前递推
来,上图,简明易懂
列表元素访问
列表元素用[ ]进行访问,通过[ : ]来获取响应的元素或元素块
此处也符合前闭后开原则
emmm
话不多说,上例子
list1 = ['三', '岁', '学', '编', '程'] >>>print(lsit1[0])#0位的内容 >三 >>>print(lsit1[1])#1位置上的内容 >岁 >>>print(lsit1[:])#全部的内容 >['三', '岁', '学', '编', '程'] >>>print(lsit1[2:5])#位置2-4上的内容(合前闭后) >['学', '编', '程'] >>>print(lsit1[::-1])#步长为-1,列表倒序输出 >['程', '编', '学', '岁', '三'] >>>print(list1[::2])#步长为2 >['三', '学', '程'] >>>print(lsit1[2:])#2位置后面的全部内容 >['学', '编', '程'] >>>print(lsit1[-2:])#-2位置后面的全部内容 >['编', '程'] >>>print(lsit1[:-2])#输出-2位置前的内容,不包括-2位 >['三', '岁', '学'] >>>print(list1[:2])#输出2位置前的内容不包括2 >['三', '岁']
整理:
- [a: b :c] a为初始位置,b为结束位置(不包含),c为步长
- [ ] 之间不能为空
- [ : ] 为冒号,省略其他内容为全部
- [a] 为a位置的内容
- [a:]为a位置开始后面所有的内容
- [:b]为b前面所有的内容,不包括b
- [::c]步长为c,如果是-1则反向输出
**注意正序是从0开始的 * 3(重要的话说3遍)
切片示例
利用for循环,len() 函数,把内容分行输出
list1 = ['三', '岁', '学', '编', '程'] for i in list1: #循环list1列表 print(f'{i}') print(f'共有{len(list1)}个元素')使用format函数(小编的是3.7.4的可以用缩写) # print('{}'.format(i)) #非缩写 #print('共有{}个元素'.format(len(list1))) 结果: 三 岁 学 编 程 共有5个元素
列表中元素的查找
列表中的元素怎么查找?
in 和 not in
python 提供了in 和 not in 来判断元素是否在列表中
in判断:在返回 True 不在 返回False
list1 = ['三', '岁', '学', '编', '程'] i = '三' j = '叁' print(i in list1) print(j in list1) print(i not in list1) print(j not in list1) 结果: True False False True
index() 函数
index() 函数是查看列表中的某值的第一个匹配项
使用方法:list.index(obj)
列表.index(元素) 结果:返回元素的第一个匹配值
如果没有值则会报错
list1 = ['三', '岁', '学', '编', '程'] i = '三' j = '叁' print(list1.index(i)) print(list1.index(j)) 结果 0 ValueError: '叁' is not in list
该函数只匹配第一位!!!
替换列表元素
使用切片把指定位置的内容进行赋值即可
ls[ i : j : z ]
list1 = ['三', '岁', '学', '编', '程'] list1[0] = '叁' print(list1) 结果: ['叁', '岁', '学', '编', '程'] list1[0:2] = '三叁' print(list1) 结果: ['三', '叁', '学', '编', '程'] list1[::2] = '三岁学' print(list1) 结果: ['三', '岁', '岁', '编', '学']
添加列表元素
小编所知添加方式共有4中
- 自加 ls += lt
- append()
- exted()
- insert()
自加 ls += lt
ls += lt 等同于 ls = ls + lt
list1 = ['三', '岁', '学'] list2 = ['编', '程'] list1 +=list2 print(list1) 结果 ['三', '岁', '学', '编', '程'] ------------------------------ list1 = ['三', '岁', '学'] list2 = ['编', '程'] list1 = list1 + list2 print(list1) 结果 ['三', '岁', '学', '编', '程']
append() 函数
append() 函数是在列表最后添加一个元素
使用方法:ls.append(x) 在ls列表后加上元素x
list1 = ['三', '岁', '学', '编'] list1.append('程') print(list1) 结果: ['三', '岁', '学', '编', '程']
注意:加在最后!!!
extend() 函数
extend() 函数 在列表最后添加多个元素 与自加+= 类似但是更推荐
使用方法:ls.extend(lt) 在列表最后添加lt内容
list1 = ['三', '岁', '学'] list1.extend(['编','程']) print(list1) 结果: ['三', '岁', '学', '编', '程']
注意:也是加在最后!!! 添加内容为一个字符串或一个列表
insert() 函数
insert() 函数在列表指定位置添加一个函数
使用方法:ls.insert(i,x) 在ls列表的i位置添加元素x
list1 = ['三', '学', '编', '程'] list1.insert(1,'岁') print(list1) 结果: ['三', '岁', '学', '编', '程']
注意:位置从0开始计数 ,添加一个元素
元素重复输出——*=
*=和+=类似
ls *= n 使 列表元素重复n次
list1 = ['三'] list1 *= 3 print(list1) 结果: ['三', '三', '三']
列表内容删除
del方法
del常用的删除方式,但是完全删除!!!
del ls[i:j] 等价于 ls[i:j] = [] 删除i到j
def ls[i:j:z] 删除i到j步长为z的内容
list1 = ['三', '岁', '学', '编', '程'] del list1[0] print(list1) 结果 ['岁', '学', '编', '程'] del list1[0:3] print(list1) 结果: ['编', '程'] del list1[::2] print(list1) 结果: ['岁', '编']
注意:此次是前开后开,第i位到第j位
pop() 函数
pop() 函数把第i项中的元素取出并删除默认为-1(暨最后一位)
list1 = ['三', '岁', '学', '编', '程'] list1.pop() print(list1) list1.pop(2) print(list1) a = list1.pop() print(a) 结果: ['三', '岁', '学', '编'] ['三', '岁', '编'] 编
注意:因为是先提取后输出所以有返回值
该内容较复杂,请您细品,细细品
remove() 函数
remove() 函数把某元素的第一个值进行删除,无返回值
使用方法:ls.remove(lt) 把ls列表中第一个lt元素删除
list1 = ['三', '岁', '学', '编', '程'] list1.remove('岁') print(list1) 结果: ['三', '学', '编', '程']
注意:删除第一个,如果要全部删除需要进行循环
如果没有所要删除元素会报错
clear() 函数
clear() 函数 输出整个列表的元素
使用方法:ls.clear()
list1 = ['三', '岁', '学', '编', '程'] list1.clear() print(list1) 结果: []
列表计算
最大值 max() 函数
max() 函数 有返回值,返回值为最大值
使用方法:max(list) 返回lsit的最大值
list1 = ['三', '岁', '学', '编', '程'] print(max(list1)) list2 = [16, 13, 28, 58, 85, 91] print(max(list2)) 结果: 编 91
emmm为什么是编字呢???
难道它的笔画多???
nonono
这个是根据他的Unicode编码的值来决定的(比Ascii编码范围广量大)
最小值 min() 函数
min() 函数返回最小值
使用方法:同max()
list1 = ['三', '岁', '学', '编', '程'] print(min(list1)) list2 = [16, 13, 28, 58, 85, 91] print(min(list2)) 结果: 三 13
求和 sum()
sum() 函数,返回最小值
使用方法:sum(list,i) 返回list的和,如果有i参数就在最后结果中加上
list2 = [16, 13, 28, 58, 85, 91] print(sum(list2)) print(sum(list2, 100)) 结果 291 391
注意:不支持字符串求和
列表排序
sort() 函数
对列表进行排序,可以是正序也可以是降序
使用方法:list.sort(self=None,key=None,reverse =False)
self,key方法比较复杂
self 可选,使用该参数的方法进行排序
key 可选,yonglai比较,只有一个具体参数
reverse True降序,False升序
list2 = [16, 13, 28, 58, 85, 91] list2.sort() print(list2) list2.sort(reverse=True) print(list2) 结果: [13, 16, 28, 58, 85, 91] [91, 85, 58, 28, 16, 13]
reverse() 函数
reverse() 函数 对序列进行反向排序
使用方法:list.reverse() 直接改变list类表的元素顺序
list2 = [16, 13, 28, 58, 85, 91] list2.reverse() print(list2) 结果: [91, 85, 58, 28, 13, 16]
注意:不能够选择正序或倒叙,只能够反向排序
list[::-1] 切片
通过切片获取
list1 = ['三', '岁', '学', '编', '程'] >>>print(lsit1[::-1])#步长为-1,列表倒序输出 >['程', '编', '学', '岁', '三']
列表的嵌套
列表中的元素可以是各种类型的那么列表呢?
emmm
我肚子里面有一个我自己???
感觉怪怪的
但是貌似肚子里面的不是我自己
列表是可以嵌套的
使用方法:
列表名=[[元素1,元素2,…],[元素1,元素2, …],…… ]
list1 = [['三', '岁'], ['学', '编', '程']]
嵌套列表的读取
emmm和列表一样的
就多了一层
list1 = [['三', '岁'], ['学', '编', '程']] print(list1[0]) print(list1[0][0]) print(list1[0][0:2]) print(list1[1][2]) 结果: ['三', '岁'] 三 ['三', '岁'] 程
自己理解一下吧
不懂的留言吧,在线解答
嵌套列表的遍历
可以采用循环语句和嵌套循环语句
来获取
list1 = [['三', '岁'], ['学', '编', '程']] for i in list1: print(i) 结果 ['三', '岁'] ['学', '编', '程'] ------------------- list1 = [['三', '岁'], ['学', '编', '程']] lt = 0 for i in list1: for j in i : print(j,end = ' ') lt += 1 print() 结果: 三 岁 学 编 程
列表的基础及函数就先到这里,例子比较多,大家细品,细细品。
小编辛苦,但是感觉挺值,点个赞,鼓励一下
收藏一波,下次就刷不到啦!!!
谢谢大咖!