python列表

1. 列表的创建:方括号 / 使用内置函数list()

列表:类似数组。和变量类似,实际存储了id(id类似指针),id指向了存储块,块内存储了id、值和类型。而列表名list则指向了第一个元素的id(类似数组首地址)

lst1 = ["cc" , "vv" , 99] #方括号方式创建
lst2 = list(["aa" , "ss" , 88]) #内置函数list()方式创建

2. 列表的特点

  • 列表元素按顺序有序排列
  • 索引映射唯一的数据(从0数则从头开始:0、1、2…)(从-1数则从后向前:…-3、-2、-1)
  • 列表可以存储重复元素
  • 任意数据类型可以混存
  • 根据需要动态分配和回收内存

3. 列表的索引查找index(value,start,stop)

  • 如果列表中有多个重复的值,则只返回第一个值的索引
  • 若查找的值在列表中不存在,则抛出ValueError
  • 可以指定start和stop之间查找[start,stop)
    这里查找时不包括stop索引的

4. 获取列表中的多个元素(切片操作)

  • 语法格式:[start:stop:step] 分别代表起始位置和步长
  • 切片的结果是原列表的拷贝(也就是切出来的是一个新的列表对象,不是原本的列表对象了)
  • 切片范围:[start , stop)
  • 不写step:默认步长为1
  • 【step为正数】不写start:默认从0开始
  • 【step为正数】不写stop:默认切到最后
  • 【step为负数】不写start:默认从最后一个开始
  • 【step为负数】不写stop:默认切到第一个
print('-----------获取列表中的多个元素(切片操作)----------------')
lst = ['11','22','33',44,'55',66,77,88,99]
print('----------step为负数情况-----------------------------')
print(lst[1:6:1])   #从下标1开始,切到下标6之前结束。步长为1
print(lst[:6:2])    #从第一个元素开始,切到下标6之前结束。步长为2
print(lst[2::2])    #从下标2开始,切到最后一个元素结束。步长为2
print('----------step为负数情况-----------------------------')
print(lst[::-1])     #从最后一个元素开始,切到第一个元素结束,逆序
print(lst[:6:-2])    #从最后一个元素开始,切到下标6之前结束。步长为2,逆序
print(lst[2::-2])    #从下标2开始,切到第一个元素结束。步长为2,逆序

5. 列表元素的增加操作(原地增加)

  • append(value):在列表末尾添加一个元素
  • extend(value):在列表末尾至少添加一个元素
  • insert(index,value):在列表的任意位置添加一个元素
  • 切片:在列表的任意位置至少添加一个元素
print("-------------列表添加元素操作-----------------")
lst = [1,2,3,4,5,6]
newLst = list("hello")
lst.append(100)     #添加100到列表后面
lst.append(newLst)  #添加一个列表作为一个元素加入到lst列表的末尾
lst.extend(newLst)  #添加一个列表,其每个元素都是一个独立的元素加入到lst列表的末尾
lst.insert(1,777)

print('---------------切片增加操作-----------------')
boolLst = [True,False]
lst[1:] = boolLst   #注意!这里只有一个冒号,表示从哪里插入,并取代后面所有元素
print(lst)          #结果为 [1,True,False]

6. 列表元素的删除操作

  • remove():一次删除一个元素,有重复则删除第一个,元素不存在抛出ValueError
  • pop():删除一个指定索引上的元素,指定索引不存在则抛出IndexError,若不指定索引则默认删除最后一个元素
  • 切片:一次至少删除一个元素
  • clear():清空列表所有元素
  • del():删除列表对象
print("------------列表删除操作-------------------")
lst = [10,20,30,40,50,60,30,40,50]
lst.remove(30)      #删除第一个值为30的元素
lst.remove(100)     #ValueError错误
lst.pop(1)          #删除索引为1的元素
lst.pop(9)          #IndexError错误
lst.pop()           #默认删除最后一个元素 
print("----------切片删除(但切片操作会产生新的列表对象)-----------------")
lst = [1,2,3,4,5,6]
newLst = lst[1:3]       #将会切出一个新的列表对象
print(newLst)           #结果为:[2,3]
print(lst)              #原列表不变
'''不产生新的列表对象'''
lst[1:3] = []           #将1到3索引的元素置空
print(lst)              #结果为:[1,4,5,6]
lst.clear();            #清空列表所有元素
del lst                 #删除列表对象

7. 列表元素的修改操作

lst = [1,2,3]
lst[1] = 7
lst[1:3] = [22,33,44,55]

8. 列表元素的排序操作

  • sort():列中元素默认按从小到大排序,可指定reverse = True,进行降序排列【原地修改】
  • sorted():可指定reverse = True,进行降序排列,原列表不发生变化【会产生一个新的列表对象】
print('-------------sort()列表排序,原地修改-----------------------')
lst = [3,2,5,6,1,8]
lst.sort()              #表示从小到大排列
lst.sort(reverse=True)  #reverse=True表示从大到小排列
print('-------------sorted()列表排序,产生一个新的列表对象-----------------------')
new_lst = sorted(lst)   #原列表不会变化,产生的新列表变化
new_lst2 = sorted(lst,reverse=True)   #原列表不会变化,产生的新列表变化(降序)

9.列表生成式

格式:[i*i for i in range(1,10)]

lst = [i for i in range(1,10)]
print(lst)      #结果:[1,2,3,4,5,6,7,8,9]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值