python中的列表

目录

1、为什么需要列表

2、列表对象的创建

3、列表的特点

4、获取指定元素的索引

5、获取列表中的单个元素 :

6、获取列表中的多个元素

7、列表元素的查询操作

 8、列表元素的增加操作

 9、列表元素的删除操作

10、列表元素的修改操作

11、 列表元素的排序操作

12、列表生成式


1、为什么需要列表

变量可以存储一个元素,而列表是一个“大容器"可以存储N多个元素,程序可以方便地对这些数据进行整体操作

列表相当于其它语言中的数组

列表示意图:

2、列表对象的创建

列表需要使用中括号[],元素之间使用英文的逗号进行分隔,例如下图:大圣和娟子姐就是元素,注意因为他们是str类型的所以要加上单引号

 其内存示意图如下:

与下面这个图一起看,lst里面存的是紫色方块的地址(也可以说成是紫色方框的id)

列表的创建方式

使用中括号

调用内置函数list()

例子:

''创建列表对象的第一种方式,使用[]'''
lst=['hello','world',98]

'''创建列表的的第二种方式,使用内置函数list()'''

lst2=list(['hello','word',98])

 内存示意图:

 

3、列表的特点

列表元素按顺序有序排序

索引映射唯一个数据

列表可以存储重复数据

任意数据类型混存

根据需要动态分配和回收内存

4、获取指定元素的索引

index():

如查列表中存在N个相同元素,只返回相同元素中的第一个元素的索引

如果查询的元素在列表中不存在,则会抛出ValueError

还可以在指定的start和stop之间进行查找

例:

lst=['hello','worid',98,'hello']
print(lst.index('hello'))  #如果列表种由相同元素值返回列表中相同元素的第一个索引
#print(lst.index('python'))  #ValueError: 'python' is not in list,说明里面没有这个元素
#print(lst.index('hello',1,3)) #ValueError: 'python' is not in list  ,1是指world,3值hello,但他不包括1和3本身,所以找不到
print(lst.index('hello',1,4))

 执行结果:

5、获取列表中的单个元素 :

正向索引从O到N-1举例: Ist[0]

逆向索引从-N到-1举例: lst[-N]

指定索引不存,抛出lndexError

 例子:

lst=['hello','world',98,'hello','world',234]
#获取索引为2的元素,该处是为正向索引,从1开始
print(lst[2])

#获取索引为-3的元素,负向索引,从-1开始
print(lst[-3])
#print(lst[10]) IndexError: list index out of range,超出了索引的范围,会抛出异常

6、获取列表中的多个元素

语法格式:

列表名[ start : stop : step ]

切片操作:

①切片的结果

原列表片段的拷贝

②切片的范围

[start,stop)

③step默认为1

简写为[start:stop]

⑥step为正数

[:stop:step]---》切片的第一个元素默认是列表的第一个元素---》从start开始往后计算切片

[start::step]---》切片的最后一个元素默认是列表的最后一个元素---》从start开始往后计算切片

⑦step为负数

[:stop:step]---》切片的第一个元素默认是列表的最后一个元素---》从start开始往前计算切片

[start::step]---》切片的最后一个元素默认是列表的第一个元素---》从start开始往前计算切片

  例子:

lst=[10,20,30,40,50,60,70,80]
#start=1, stop=6,step=1
print(lst[1:6:1])
print('原列表',id(lst))
lst2=lst[1:6:1]
print('切的片段',id(lst2))
#原列表的id和切片列表的id不同,说明了切片是从原列表切片后,又新建了一个列表对象

print(lst[1:6])  #默认步长为1
print(lst[1:6:])   #默认步长还是为1

#start=1, stop=6,step=2,此时步长为2
print(lst[1:6:2])

#stop=6,step=2,start默认
print(lst[:6:2])

#start=1,step=2,stop默认
print(lst[1::2])  #通过结果我们可以发现stop默认是一直到结尾
print('==========step为复数===============')
print('原列表',lst)
print(lst[::-1])
#我们可以看出step为复数的第一个数是原列表的最后一个数,即将原列表倒了过来
#start=7,stop省略,step=-1
print(lst[7::-1])
#start=6,stop=0,step=-2
print(lst[6:0:-2])

输出结果:

7、列表元素的查询操作

判断指定元素在列表中是否存在:

元素  in 列表名

元素 not  in  列表名

列表元素的遍历:

                       for 迭代变量 in列表名:

                       操作

例子:

print('p'in'python') #true
print('k'not in 'python')  #true

lst=[10,20,'python','hello']
print(10 in lst)  #true
print(100 in lst)   #false
print(100 not in lst)   #true
print(10 not in lst)  #false

print('-------遍历-------------')
for item in lst:
    print(item)

输出结果:

 8、列表元素的增加操作

增加操作方法/其它操作描述
append()在列表的末尾添加一个元素
extend()在列表的末尾至少添加一个元素
insert()在列表的任意位置添加一个元素
切片在列表的任意位置添加至少一个元素

例子:

#向列表的末尾添加一个元素
lst=[10,20,30]
print('添加元素之前',lst,id(lst))
lst.append(100)
print('添加元素之后',lst,id(lst))
#通过对比添加元素前后的id可知,添加元素后他并没有创建新的对象
lst2=['hello','world']
#lst.ppend(lst2) #这个操作是将lst2作为以一个元素添加到列表的末尾

lst.extend(lst2)
#向列表的末尾一次性添加多个元素
print(lst)

#在任意位置上一添加一个元素
lst.insert(1,90)   #意思是在索引为1的位置上添加90
print(lst)

#任意位置上添加N个元素
lst3=['true','false','hello']
lst[1:]=lst3
print(lst)

输出结果:

 9、列表元素的删除操作

删除操作方法/其它操作描述
removeo-次删除一个元素
重复元素只删除第一个
元素不存在抛出ValueError
pop()删除一个指定索引位置上的元素
指定索引不存在抛出IndexError
不指定索引,删除列表中最后一个元素
切片一次致少删除一个元素
clear()清空列表
del删除列表

例子:

lst=[10,20,30,40,50,60,70,80,30]
lst.remove(30)  #从列表中移除一个元素,如果又重复元素只移第一个
print(lst)
#pop()根据索引移除元素
lst.pop(1)
print(lst)  #可以发现索引为1的位置上的元素被移除了
#lst.pop(6)  如果指定的索引位置不存在则抛出异常
lst.pop()  #如果不指定参数,则将删除列表中的最后一个元素
print(lst)

print('------------切片操作-------------')
new_list=lst[1:3]
print('源列表',lst)
print('切片后的列表',new_list)

'''不产生新的列表对象,二十删除原列表中的内容'''
lst[1:3]=[]  #其实不是真正的删除,而是用一个空列表将起替代
print(lst)
'''清除列表中的所有元素'''
lst.clear()
print(lst)

'''del语句将列表对象删除'''
del lst
#print(lst)  会报错,找不到列表

输出结果:

10、列表元素的修改操作

为指定索引的元素赋予一个新值

为指定的切片赋予一个新值

例子:

lst=[10,20,30,40]
#一次修改一个值
lst[2]=100
print(lst)
lst[1:3]=[300,400,500,600]
print(lst)

 输出结果:

11、 列表元素的排序操作

常见的两种方式:

①调用sort()方法,列有中的所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序

②调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变

例子:

st=[20,40,10,98,54]
print('排序前的列表',lst,id(lst))
#开始排序,调用列表对象的sort方法,升序排序
lst.sort()  #不产生新的列表对象
print('排序后的列表',lst,id(lst))

#通过指定关键字参数,将列表中的元素进行排序
lst.sort(reverse=True)   #reverse=True表示降序排序,reverse=False就是升序排序
print(lst)
lst.sort(reverse=False)
print(lst)    #不产生新的列表对象
print('-------------使用内置函数sorted()对列表进行排序,将产生一个新的列表对象------------')
print('原列表',lst)
#开始排序
new_list=sorted(lst)
print(lst)
print(new_list)
#指定关键字参数,实现列表元素的降序排序
desc_list=sorted(lst,reverse=True)
print(desc_list)

输出结果:

12、列表生成式

列表生成式简称:

“生成列表的公式”

语法格式:

注意事项:“表示列表元素的表达式”中通常包含自定义变量

例子:

lst=[i for i in range(1,10)]
print(lst)
lst3=[i*i for i in range(1,10)]

'''列表中的元素的值为2,4,6,8'''
lst2=[i*2 for i in range(1,11)]
print(lst2)

输出结果:

print('apple'>'app')  #True
print('apple'>'hanana')  #False,相当于是97>98 False
print(ord('a'),ord('b'))

print(chr(97),chr(98))
print(chr(26472))

''' ==与is的与别
  == 比较的是value
  is  比较的是id是否相等
'''
a=b='Python'
c='Python'
print(a==b)
print(b==c)

print(a is b)
print(a is c)
print(id(a))
print(id(b))
print(id(c))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值