Python的列表操作

1.列表创建

Python中用中括号[ ]来表示列表,并且用逗号来分隔元素。列表的创建方式如下:

>>> list=['a','b','c','d',1,2,3,4]

当我们用print函数将该列表打印出来,中括号也会同步显示出来:

>>> print(list) 
['a', 'b', 'c', 'd', 1, 2, 3, 4]

2.列表访问

列表中的每个元素都有索引(index),最左边的index为0,从左到右index依次加1。我们可以根据元素在列表中所在的索引位置(index)其进行访问,例如我们想打印list列表中的'b'这个元素:

>>> print(list[1]) 
b

另外我们也可以用list[i:j]来访问第i个元素到第j-1个元素的列表切片,如

>>> print(list[1:3]) 
['b', 'c']

Python 可以用list[i:]来表示第i个元素到最后一个元素,另外也可以用list[:j]来表示第一个元素到第j-1个元素,如

>>> print(list[2:])
['c', 'd', 1, 2, 3, 4]
>>> print(list[:3]) 
['a', 'b', 'c']

当我们想list[i:j:q]表示取第i个元素到第j-1个元素,step为q的元素,如list[1:6:2]表示list[1],list[3],list[5]的元素组成的列表,如

>>> print(list[1:6:2])  
['b', 'd', 2]

注意当步长为正时,表示从左到右按照步长取元素。当步长为负时,表示从右到左取元素。因此如果想反转列表的元素顺序时可以用list[::-1],如

>>> print(list[::-1])    
[4, 3, 2, 1, 'd', 'c', 'b', 'a']

 3.修改列表元素

(1)直接赋值list[i]=xxx

>>> list=['a','b','c'] #创建列表
>>> print(list) 
['a', 'b', 'c']
>>> list[0]='d' #将第0个元素改为'd'
>>> print(list) 
['d', 'b', 'c']

(2)在列表末尾增加元素list.append()或者list.extend()

其中list.append('abc')将字符串'abc'作为一个整体插入列表,而list.extend('abc')将字符串每个字符视为单独元素插入列表。列表的加法操作和extend()方法是一样的效果。例如:

>>> list.append('abc')#在list末尾加入元素'abc'
>>> print(list)
['d', 'b', 'c', 'abc']
>>> list.extend('abc')#在list末尾依次加入元素'a''b''c'
>>> print(list) 
['d', 'b', 'c', 'abc', 'a', 'b', 'c']
>>> list+='def' 
>>> print(list) #在list末尾依次加入元素'd''e''f'
['d', 'b', 'c', 'abc', 'a', 'b', 'c', 'd', 'e', 'f']

(3) 在列表中任意位置插入元素list.insert()

>>> list=['a','b','c']
>>> print(list) 
['a', 'b', 'c']
>>> list.insert(0,'d') 
>>> print(list)
['d', 'a', 'b', 'c']

(4)del函数删除列表元素

>>> list=['a','b','c']     
>>> print(list)       
['a', 'b', 'c']
>>> del list[1]
>>> print(list) 
['a', 'c']

(5)pop()方法删除列表元素

pop()方法可以将列表的最后一个元素弹出,并作为值返回。当pop()方法指定index时会将指定的index元素弹出,并作为值返回,如:

>>> list=['a','b','c','d']
>>> list.pop()#最后一个元素'd'弹出列表并返回
'd'
>>> print(list) 
['a', 'b', 'c']
>>> list.pop(0)#第0个元素'a'弹出列表并返回 
'a'
>>> print(list) 
['b', 'c']

(6)remove()方法根据值删除元素

>>> list=['a','b','c','d']
>>> list.remove('b') 
>>> print(list) 
['a', 'c', 'd']

(7)reverse()方法将元素顺序反转

>>> list=['a','b','c','d']
>>> list.reverse()
>>> print(list) 
['d', 'c', 'b', 'a']

(8)sort()方法将元素排序

sort()方法默认可以让元素进行从小到大排序,当想从大到小排序时可以使用sort(reverse=True)

>>> list=[2,4,1,5,8,7]
>>> list.sort()             
>>> print(list) 
[1, 2, 4, 5, 7, 8]
>>> list.sort(reverse=True)
>>> print(list) 
[8, 7, 5, 4, 2, 1]

sort(key=function)可以将元素的函数结果来排序,如

>>> list=[2,-4,1,5,8,-7]
>>> list.sort(key=lambda x:x*x)#x平方函数,
>>> print(list)
[1, 2, -4, 5, -7, 8]

需要注意的是sort()方法会改变原来的list,当我们不想改变原来的list,可以使用sorted()函数,这样只有函数的返回值是排序的结果,原list不变,如

>>> list=[2,4,1,5,8,7]
>>> sorted(list)
[1, 2, 4, 5, 7, 8]
>>> print(list) 
[2, 4, 1, 5, 8, 7]
>>> sorted(list,reverse=True) 
[8, 7, 5, 4, 2, 1]
>>> print(list) 
[2, 4, 1, 5, 8, 7]

(9)clear()方法清空列表

>>> list=[2,-4,1,5,8,-7]        
>>> list.clear()
>>> print(list) 
[]

 4.其他函数和方法

(1)len()函数返回列表长度

>>> list=['a','b','c'] 
>>> len(list) 
3

(2) count()方法返回元素的个数

>>> list=['a','b','c','b','b','a']
>>> list.count('b') 
3
>>> list.count('a') 
2

(3) index()方法返回元素的第一个index

>>> list=['a','b','c','b','b','a']     
>>> list.index('b') 
1
>>> list.index('c') 
2

(4) copy()方法复制列表

   copy()方法可以返回一个完全相同的列表,如

>>> list=['a','b','c','b','b','a']
>>> list1=list.copy()
>>> list1[0]='d' #改变列表list1的第0个元素为‘d’,不影响列表list
>>> print(list)
['a', 'b', 'c', 'b', 'b', 'a']
>>> print(list1) 
['d', 'b', 'c', 'b', 'b', 'a']

当我们用等于号来赋值一个列表给另一个列表时,此时Python并没有创建一个新的列表,只是将原来列表的指针指到新列表上,改变新列表也会同时将老列表改掉,如

>>> list=['a','b','c','b','b','a']
>>> list1=list
>>> list1[0]='d'#改变list1的第0个元素,同时list的第0个元素也会改掉
>>> print(list)
['d', 'b', 'c', 'b', 'b', 'a']
>>> print(list1) 
['d', 'b', 'c', 'b', 'b', 'a']

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值