Python列表基本用法详解

目录

1.列表的定义和初始化:

2.列表的访问和切片操作:

3.列表的加法及列表与数字的乘法:

4.列表的遍历:

 5.列表的成员函数:

1.count(x):计算列表中有多少x

2.append(x):t=添加元素x到列表尾部

3.copy():返回自身的复制(浅复制)

4.extend(x):添加列表x中的元素到尾部

5.index(x):查找x,返回第一次出现的下标,找不到则引发异常

6.insert(x,i):将元素x插入到下标i处

7.pop(i):删除并返回下标为i的元素,若i为空则删除最后一个元素

8.remove(x):删除元素x,如果有多个x,只删除第一个。若x不存在,则引发异常

9.reverse():将列表逆序

10.sort:排序

6.列表生成式:


1.列表的定义和初始化:


#列表的定义和初始化:
mylist1=[1,2,'ok',[1,2]]
mylist2=[]#定义一个空列表
mylist1.append([1,2])#用append函数往列表中添加元素
mylist2.append('ok')#往列表2中添加元素
print(mylist1)
print(mylist2)
#运行结果
[1, 2, 'ok', [1, 2], [1, 2]]
['ok']

2.列表的访问和切片操作:

列表内容12'ok'4
正向下标0123
反向下标-4-3-2-1

切片时 :list1[m,n]的实际下标范围为[m.n-1]

#列表下标的访问:
list1=[1,2,'ok',[2,3]]
print(list1[0])#访问下标为0的元素
print(list1[-1])#访问下标为-1的元素
#运行结果
1
[2, 3]
#列表的切片:
print(list1[:])#输出整个列表
print(list1[::-1])#逆序输出整个列表
print(list1[1:])#从下标为1开始输出整个列表
print(list1[-3::-1])#从下标为-3开始逆序输出整个列表
print(list1[0:3])#从下标为0输出到下标为3-1=2
#运行结果
[1, 2, 'ok', [2, 3]]
[[2, 3], 'ok', 2, 1]
[2, 'ok', [2, 3]]
[2, 1]
[1, 2, 'ok']

注意:列表切片后的结果为新列表

3.列表的加法及列表与数字的乘法:

#列表的加法
a=[1,2,3,4]
b=[5,6]
c=a+b#生成一张新的列表,让c指向该列表
a+=b#不生成新列表在a中直接添加b列表中的元素
a[0]=100#a[0]影响a,但不影响c
print(c)
print(a)
#输出结果
# [1, 2, 3, 4, 5, 6]
# [100, 2, 3, 4, 5, 6]
#列表与数字的乘法
a=[1,2,3]
c=a*3#a*n代表一张新的列表,内容是将a中元素写n遍
print(a*3) #[1, 2, 3, 1, 2, 3, 1, 2, 3]
a[2]="ok"#新列表生成后与a没有任何联系,改变a中元素的值c中元素的值不会改变
print(c) #[1, 2, 3, 1, 2, 3, 1, 2, 3]
d=[a]*3#[a]*n是一张新列表,表中元素是n个指针和a指向同一张列表(或者说新生成的列表中的n个a指向同一个地方)改变a的值d会改变,
print(d) #[[1, 2, 'ok'], [1, 2, 'ok'], [1, 2, 'ok']]
a.append('ko')
a[0]=100
print(d) #[[100, 2, 'ok', 'ko'], [100, 2, 'ok', 'ko'], [100, 2, 'ok', 'ko']]

#列表加法和乘法的混合运算
a=[[0]]*2+[[0]]*2
print(a) #[[0], [0], [0], [0]]
a[0][0]=5#前两个[0]指向同一个地方,后两个[0]指向同一个地方
print(a) #[[5], [5], [0], [0]]

4.列表的遍历:

#通过for循环遍历:
lst=[1,2,3,4,5]
for i in lst:#直接遍历列表的各个元素
    print(i,end=' ')
print('')
for i in range(len(lst)):#通过下标遍历列表的元素
    lst[i]=0#通过下标遍历,可对列表中元素的值进行操作
    print(lst[i],end=' ')
#运行结果
# 1 2 3 4 5 
# 0 0 0 0 0 

 5.列表的成员函数:

1.count(x):计算列表中有多少x

a=[1,2,3,4,5,2]
b=[[1,2],[1,2],'ok','ok',a,a]
print(a.count(2))
print(b.count([1,2]))
print(b.count('ok'))
print(b.count(a))
运行结果:
2
2
2
2

2.append(x):t=添加元素x到列表尾部

l=[]
for i in range(5):
    l.append(i)
print(l)
# 运行结果:
[0, 1, 2, 3, 4]

3.copy():返回自身的复制(浅复制)

a=[1,2,3,4,5]
b=a.copy()#说明一下复制后内容相同但指向的位置不同(即修改a的值b的值不会改变)
print(b)
#运行结果
[1, 2, 3, 4, 5]

4.extend(x):添加列表x中的元素到尾部

a=[1,2,3,4,5]
b=['ok',100]
a.extend(b)
print(a)
#运行结果
[1, 2, 3, 4, 5, 'ok', 100]

5.index(x):查找x,返回第一次出现的下标,找不到则引发异常

其实index有三个参数index(x,beg,end):x为要查找的序列(列表,元组,字符串),beg为起始范围(默认为0),end为终止范围(默认为序列的长度)。

a=[1,2,'小李',3,4,5,'小李',7]
print(a.index('小李'))
print(a.index('小李',3,8))#index(x,i,j):查找下标范围是从i到j-1
print(a.index('小李',0,3))
#运行结果
2
6
2

6.insert(x,i):将元素x插入到下标i处

a=[1,2,'小李',3,4,5,'小李',7]
a.insert(2,100)#原来在这个位置上的元素及其后面所有的元素都向后移动一位
print(a)
运行结果
[1, 2, 100, '小李', 3, 4, 5, '小李', 7]

7.pop(i):删除并返回下标为i的元素,若i为空则删除最后一个元素

a=[1,2,'小李',3,4,5,'小李',7]
print(a)
b=a.pop()
c=a.pop(2)
print(b)
print(c)
print(a)
运行结果
[1, 2, '小李', 3, 4, 5, '小李', 7]
7
小李
[1, 2, 3, 4, 5, '小李']

8.remove(x):删除元素x,如果有多个x,只删除第一个。若x不存在,则引发异常

a=[1,2,'小李',3,4,5,'小李',7]
a.remove(1)
print(a)
a.remove('小李')
print(a)
a.remove('小李')
print(a)
运行结果:
[2, '小李', 3, 4, 5, '小李', 7]
[2, 3, 4, 5, '小李', 7]
[2, 3, 4, 5, 7]
#在这多嘴一句要想删除一个列表中的所有指定元素用下列这种用法
b=[1,2,3,3,3,5]
print(b)
b=[i for i in b if i!=3]
print(b)
运行结果:
[1, 2, 3, 3, 3, 5]
[1, 2, 5]

9.reverse():将列表逆序

a=[1,2,'小李',3,4,5,'小李',7]
a.reverse()
print(a)
运行结果:
[7, '小李', 5, 4, 3, '小李', 2, 1]

10.sort:排序

我们先简单点说就只说升降序,想详细了解小伙伴请查看博主的专门关于sort,sorted函数的排法

a=[3,4,5,1,6,2]
a.sort()#默认是升序
print(a)
a.sort(reverse=True)#升序
print(a)
运行结果:
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]

6.列表生成式:

a=[x*x for x in range(5)]
print(a)
b=[x*x for x in range(5) if x%2==0]
print(b)
c=[m+n for m in 'abc' for n in 'abc']
print(c)
d=[[m+n for m in 'abc'] for n in 'abc']
print(d)
运行结果:
[0, 4, 16]
['aa', 'ab', 'ac', 'ba', 'bb', 'bc', 'ca', 'cb', 'cc']
[['aa', 'ba', 'ca'], ['ab', 'bb', 'cb'], ['ac', 'bc', 'cc']]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值