python 列表(list)

一、列表样式

格式:[ 元素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不会