Python列表

目录

一、列表的创建与删除

1.1 列表的创建

二、列表的查询操作

2.1 获取列表中指定元素的索引

2.2 获取列表中的单个元素

2.3 获取列表中的多个元素 

2.4 列表元素的判断

2.5 列表元素的遍历

三、列表元素的增、删、改操作

3.1 列表元素的增加

3.2 列表元素的删除

3.3 列表元素的修改

四、列表元素的排序

五、列表生成式


  • 变量可以存储一个元素,而列表可以存储 N 多个元素,程序可以方便地对这些数据进行整体操作
  • 列表相当于其它语言中的数组,不同的是列表可以存储不同类型的数据

一、列表的创建与删除

1.1 列表的创建

  • 使用中括号[]

  • 调用内置函数list()
lst1=['hello','hi',88]
print(type(list1))
print(list1)

lst2=list(['hello','hi',88])
print(type(list2))
print(list2)

运行结果

  

二、列表的查询操作

2.1 获取列表中指定元素的索引

列表名.index(x)

  • 若列表中存在 N 个相同元素,只返回相同元素中第一个元素的索引
  • 还可以在指定的 start 和 stop 之间进行查找:.index(x,start,stop)    其中 stop 可省略
  • 若查询的指定元素在列表中不存在,则抛出 ValueError

注意:索引号从0开始(列表中的第一个元素索引号为0)

lst=['hello','hi','hey','hi',33]
print(lst.index('hi'))
print(lst.index('hi',2))

运行结果

2.2 获取列表中的单个元素

列表名[n]

  • 列表的两种索引方式
    • 正向索引:从 0 到 N-1
    • 逆向索引:从 -N 到 -1
  • 若查询的指定索引在列表中不存在,则抛出 IndexError
lst=['hello','hi','hey','hi',33]
print(lst[2])
print(lst[-3])

运行结果

2.3 获取列表中的多个元素 

列表名[start:stop:step]

切片操作

  • 切片的结果:原列表片段的拷贝
  • 切片的范围:[ start , stop )
  • step 默认为1:简写为 [start:stop]
  • step 为正数:从 start 开始往后计算切片
    • [:stop:step]:切片的第一个元素默认是列表的第一个元素
    • [start::step]:切片的最后一个元素默认是列表的最后一个元素
  • step 为负数:从 start 开始往前计算切片
    • [:stop:step]:切片的第一个元素默认是列表的最后一个元素
    • [start::step]:切片的最后一个元素默认是列表的第一个元素 
lst=['a1','a2','a3','a4','a5','a6','a7','a8','a9']
print('原列表:',lst)
print('lst[::]',lst[::])
print('lst[2:8]',lst[1:8])
# step为正数
print('lst[:7:2]',lst[:7:2])
print('lst[2::2]',lst[2::2])
# step为负数
print('lst[:2:-3]',lst[:2:-3])
print('lst[7::-2]',lst[7::-2])

运行结果

2.4 列表元素的判断

元素 in 列表名

元素 not in 列表名

2.5 列表元素的遍历

for 迭代变量 in 列表名:

        循环体

lst=['a1','a2','a3']
for i in lst:
    print(i)

运行结果

三、列表元素的增、删、改操作

3.1 列表元素的增加

  • append():在列表的末尾添加一个元素

  • extend():在列表的末尾添加至少一个元素

lst=['a1','a2','a3']
print('添加元素之前:',lst,id(lst))

lst.append(100)
print('末尾添加1个元素:',lst,id(lst))
lst1=['hi','hello']
lst.append(lst1)
print('末尾添加1个元素:',lst,id(lst))

lst.extend(lst1)
print('末尾添加多个元素:',lst,id(lst))

运行结果

  • insert():在列表的任意位置添加一个元素

  • 切片:在列表的任意位置添加至少一个元素

lst=['a1','a2','a3','a4']
print('插入元素之前:',lst,id(lst))
lst.insert(2,100)
print('插入1个元素:',lst,id(lst))

lst=['a1','a2','a3','a4']
print('插入元素之前:',lst,id(lst))
lst1=[True,'abandon']
lst[1::]=lst1
print('切片插入多个元素:',lst,id(lst))

lst=['a1','a2','a3','a4']
print('插入元素之前:',lst,id(lst))
lst[0::2]=lst1
print('切片插入多个元素:',lst,id(lst))

运行结果

3.2 列表元素的删除

  • remove()
    • 一次删除一个元素
    • 重复元素只删除第一个
    • 若元素不存在抛出ValueError
lst=[10,20,30,40,40,50,60,70,80]
print(lst)

lst.remove(20)
print(lst)

lst.remove(40)
print(lst)

运行结果

  • pop()
    • 删除一个指定索引位置上的元素
    • 若不指定索引则删除列表最后一个元素
    • 若指定索引不存在抛出IndexError
lst=[10,20,30,40,40,50,60,70,80]
print(lst)

lst.pop(1)
print(lst)

lst.pop()
print(lst)

运行结果

  • 切片
    • 一次至少删除一个元素
'''方式1:产生一个新的列表对象'''
lst=[10,20,30,40,40,50,60,70,80]
print('原列表',lst,id(lst))
lst1=lst[1:4]
print('切片后的列表',lst1,id(lst1))

'''方式2:删除原列表内容,不产生新列表对象'''
lst=[10,20,30,40,40,50,60,70,80]
print('原列表',lst,id(lst))
lst[1:5]=[]
print('切片后的列表',lst,id(lst))

运行结果

  • clear()
    • 清空列表
  • del
    • 删除列表
lst=[10,20,30,40,40,50,60,70,80]
print('原列表:',lst)
lst.clear()
print('清空后的列表:',lst)

lst=[10,20,30,40,40,50,60,70,80]
print('原列表:',lst)
del lst
print(lst)

运行结果

 

3.3 列表元素的修改

lst=[10,20,30,40,50]
print(lst)

# 一次修改一个值
lst[3]='A'
print(lst)

# 一次修改多个值
lst[1:3]=['a','b','c']
print(lst)

运行结果

四、列表元素的排序

  • .sort()
    • 调用sort()方法,列表中所有元素默认按照从大到小的顺序进行排序,也可以指定reverse=True,降序排序;reverse=False,升序排序。
    • 原列表改变,不新建列表
lst=[10,33,9,100,64]
print('排序前的列表:',lst,id(lst))
lst.sort()
print('默认排序后的列表:',lst,id(lst))
lst.sort(reverse=True)
print('降序排序后的列表:',lst,id(lst))

运行结果

  • sorted()
    • 调用内置函数sorted(),列表中所有元素默认按照从大到小的顺序进行排序,也可以指定reverse=True,降序排序;reverse=False,升序排序。
    • 原列表顺序不变,新建排序后的列表
lst=[10,33,9,100,64]
print('排序前的列表:',lst,id(lst))
new_lst=sorted(lst)
print('默认排序后的列表:',new_lst,id(new_lst))
new_lst1=sorted(lst,reverse=True)
print('降序排序后的列表:',new_lst1,id(new_lst1))

运行结果

五、列表生成式

即生成列表的公式

[ 列表元素的表达式 for 自定义变量 in range(n,m) ]

  • 注意:“列表元素的表达式”中通常包含自定义变量
lst=[ i*i for i in range(1,10)]
print(lst)

运行结果


Flag:我要成为一个日更选手:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值