一、列表样式
格式:[ 元素1,元素2] ,元素类型不限制,可以是变量、布尔表达式,逻辑判断、数值、字符串等
a=1
list = [1, 'test',a, 1.0, 1 and 2]
print(list)
二、列表使用
1、列表元素引用
只输入list 时等同于输入变量名称,直接调用列表全部内容;使用 list[number] 调用具体内元素 (list 为列表名称,number为参数,整数(0 到 元素个数-1);第一位元素的标号为0 ,以此类推)。
list 是整个列表,list[0] 为list 内第一个元素,list[1] 为list 内第二个元素,list[-1]是倒数第一个元素(-0=0 是第一个元素)
a=1
list = [1, 'test',a, 1.0, 1 and 2]
print(list) #输出整个列表 [1, 'test', 1, 1.0, 2]
print(list[0])#输出第一个元素 1
print(list[-0])#输出第一个元素 1
print(list[1])#输出第二个元素 test
print(list[-1])#输出倒数第一个元素 2
2、列表切片
在list[number] 基础上添加冒号 为 list[number1:number2:number3] (number1 为起始位置,number2 为停止位置,number3 为步长;number 可只写一位(起始默认为0 ,停止默认为列表元素个数,步长默认为1),冒号可省略(但多个number之间必须使用))
a=1
list = [1, 'test',a, 1.0, 1 and 2,'xuexi',True]
print(list[0:5:2])
# 从0 开始,下一个为2(累加2),直到下标进行到5(不包括5)结束
# [1, 1, 2]
print(list[0:5])
print(list[0:-2])
# 从0 开始,下一个为1(不写步长,默认为1),直到下标进行到5(不包括5)结束
# [1, 'test', 1, 1.0, 2]
print(list[0:-1])
# 从0 开始,下一个为1(不写步长,默认为1),直到下标进行到-1结束
# [1, 'test', 1, 1.0, 2, 'xuexi']
print(list[0:])
# 从0 开始,下一个为1(不写步长,默认为1),直到下标进行到元素个数结束
# [1, 'test', 1, 1.0, 2, 'xuexi', True]
print(list[:-1])
# 默认从0 开始,下一个为1(不写步长,默认为1),直到最后一元素前结束
# [1, 'test', 1, 1.0, 2, 'xuexi']
print(list[::-1])
# 步长为负数时,从右到左获取元素
# [True, 'xuexi', 2, 1.0, 1, 'test', 1]
3、列表元素的添加、更新与删除
元素添加
append(参数) 、insert(参数1,参数2)、extend(list) 。
append 只用一个参数,将参数内容直接放在列表最后一位。
insert 需要两位参数,参数1填下标,参数二填内容。
extend()参数为列表等数据集。
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list.append('Baidu')
print (list) # [1, 'test', 1.0, 2, 'xuexi', True, 'Baidu']在最后多了
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list.insert(1,'Baidu')
print (list) # [1, 'Baidu', 'test', 1.0, 2, 'xuexi', True] 出现在第二个元素
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list1 = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list.extend (list1)
print (list) # [1, 'test', 1.0, 2, 'xuexi', True, 1, 'test', 1.0, 2, 'xuexi', True] 将别的元素复制到本元素末尾
元素更新
直接使用赋值表达式即可
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list[0]=100
print (list) # [100, 'test', 1.0, 2, 'xuexi', True]
元素删除
del()、pop()、remove()、clear()。
del()参数填写 list[0] 等调用形式删除。
pop()参数填写 下标数字 删除。
remove()参数填写 数据内容 匹配到的第一个元素删除。
clear()无参数, 清空所有元素,输出列表时为 [] 。
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
del(list[0])
print (list) #引用的方式删除
list = [1, 'test', 1.0, 1 and 2,'xuexi','xuexi',True]
list.pop(1)
print (list) # [1, 1.0, 2, 'xuexi', 'xuexi', True] 删除下标为1的元素
list = [1, 'test', 1.0, 1 and 2,'xuexi','xuexi',True]
list.remove('xuexi')
print (list) # [1, 'test', 1.0, 2, 'xuexi', True] 删除第一个按值匹配到的元素
list = [1, 'test', 1.0, 1 and 2,'xuexi','xuexi',True]
list.clear()
print (list) # [] 清空所有元素
4、列表常规操作符
1)len ,计算元素个数 。len([1, 2, 3]) 的值为3;list = [1, 'test', 1.0, 1 and 2,'xuexi',True] print(len(list)) 的结果为6。
2)+ ,列表相加,元素合并。
3)* ,列表*整数,相当于多个相同列表相加合并为一个。
4) in , 判断值是否存在于列表。
5)for in ,循环时使用列表,可依次输出列表元素。
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list1 = ['+']
print(len(list))
# 6
print(list+list1)
#[1, 'test', 1.0, 2, 'xuexi', True, '+']
# 元素合并,+符号之前的list在合并之后的前方
# 等同于 list.extend(list1) ,但不修改list元素,而是新的列表
print(list*2)
#[1, 'test', 1.0, 2, 'xuexi', True, 1, 'test', 1.0, 2, 'xuexi', True]
#等同于 list +list
print('xuexi' in list )
#True
#判断值是否存在与list
# 等同于 bool(list.pop(4))
for i in list:
print(i)
#输出列表所有元素
三、嵌套列表
list = [1, 'test', 1.0, 1 and 2,'xuexi',True]
list1 = ['+']
list2 = [list,list1]
print(list2)
#[[1, 'test', 1.0, 2, 'xuexi', True], ['+']]
#格式与 list+list1 有区别
print(list2[0],list2[0][1],list2[1],list2[1][0])
# [1, 'test', 1.0, 2, 'xuexi', True] test ['+'] +
#引用时可以使用多个[] 来深度确定元素
print(list2[0][1])
#test
list2[0][1]=2
print(list[1],list2[0][1])
#2 2
#此方法可看见列表的嵌套实际是整个列表的引用,在修改引用时,会更新原本列表的元素
四、列表常用函数与方法
名称函数例子len(list)列表元素个数len([1,2,3]) 返回 3 max(list)返回列表元素最大值
max(['test','xuexi','max']) 的值为 xuexi
max([1,2,3]) 的值为 3
不能字符串和数据类型一起比较
min(list)返回列表元素最小值同 max 用法list(seq)将元组转换为列表
list = list((0,1,2,3))
名称方法例子list.append在列表末尾添加新的对象2.3.1list.count统计某个元素在列表中出现的次数print([1, 'test', 1.0, 1 and 2,'xuexi',False].count(1))list.extend在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)2.3.1list.index从列表中找出某个值第一个匹配项的索引位置同 remove,不删除元素,返回元素下标list.insert(index, obj)将对象插入列表2.3.1list.pop移除列表中的一个元素(默认最后一个元素),并且返回该元素的值2.3.3list.remove移除列表中某个值的第一个匹配项2.3.3list.reverse反向列表中元素同 列表切片 中的 list[::-1]list.sort( key=None, reverse=False)对原列表进行排序: x.sort(key=lambda a:abs(a-3), reverse=False)
可分别使用字符串和数值,不可同用,字符串时key一般为len,数字时默认为空,按照值小排前
list.clear清空列表2.3.3list.copy复制列表同 直接赋值list ,但赋值后的list会随着被赋值list更改而变化,但是copy不会