第七讲:列表

列表

说明:列表用方括号[]表示,元素之间用,隔开,类型容器,内容可改变。List可以放数字,字符串,元组,字典,列表,类,内建函数等

1、创建列表:

list1=[]

list2=[1,2,'234',[2,3,4]]

2、(查)访问获取列表元素:索引方式获得,列表索引从0开始:

list2=[1,2,'234',[2,3,4]]
print (list2[2])
print (list2[3][2])
print (list2[2:4]) #列表切片,获取从索引2到索引3位置元素


运行结果:
234
4
['234', [2, 3, 4]]

3、(改)改列表元素:给列表元素重新赋值

list2=[1,2,'234',[2,3,4]]
list2[3]=[5,6,7]
print (list2)

运行结果:
[1, 2, '234', [5, 6, 7]]

4、(增)增加列表元素:用append()和insert()方法:

append()与insert()的区别:

append(元素):末尾添加元素,对原列表有变化

insert(位置i,元素x):在两个元素之间添加元素

list2=[1,2,'234',[2,3,4]]
list2.append('ABC')
print (list2)
list2.insert(3,'hello insert')
print (list2)

运行结果:
[1, 2, '234', [2, 3, 4], 'ABC']
[1, 2, '234', 'hello insert', [2, 3, 4]]

5、(删)用del删除列表或列表的元素;用remove() 移除列表的元素;用pop() 通过元素下标删除元素

 del、remove、pop的区别:

remove是对列表的元素进行检索删除;返回是删除的列表,不是删除的元素,返回值None;

del和pop是对列表的元素的下标进行检索删除;del不返回删除值;pop返回删除值

list1=[1,2,'234',[2,3,4]]
list1.remove('234')                  #remove()对元素进行检索
print ("list1.remove('234')=",list1)
list1.pop(2)                         #pop()对元素的下标进行检索
print ('list1.pop(2)=',list1) del list1[0] print ('del list1[0]=',list1) #del对元素的下标进行检索,删除会快点

运行结果:
list1.remove('234')= [1, 2, [2, 3, 4]]
list1.pop(2)= [1, 2]
del list1[0]= [2]

 6、列表的运算符:

7、列表的切片截取:

L = ['spam', 'Spam', 'SPAM!']
#获取列表第三个元素:
print (L[2])
#读取列表中倒数第二个元素:
print (L[-2])
#从列表的第二个元素开始截取列表:
print (L[1:])
print (L[:])


运行结果:
SPAM!
Spam
['Spam', 'SPAM!']
['spam', 'Spam', 'SPAM!']

8、列表复制:传值和传引用:

说明:引用(变量a=变量b)指的是操作的同一个对象,复制([:]模式)指完全复制一个新的对象

L1= ['spam', 'Spam', 'SPAM!']
L2= L1   #传地址
L3= L1[:]    #传值
print (L2 is L1)   #True
print (L3 is L1)   #False

注意:列表的比较用is,不要用in ,in是比较元素

9、列表函数与方法:

以下函数对所有序列都有用(序列:字符串、列表、 元组)(备注pyhton3移除了cmp的函数)

以下函数仅对列表生效

10、operator运算符模块:

python3已废弃cmp()函数,所以用新函数(eq、lt、le、gt、ge)替换

import operator             #导入运算符模块
a=4
b=9
print (operator.eq(a,b))    #等于
print (operator.lt(a,b))    #小于
print (operator.le(a,b))    #小于等于
print (operator.gt(a,b))    #大于
print (operator.ge(a,b)) #大于等于

运行结果:
False
True
True
False
False

 11、sort()函数:

sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

语法:

list.sort(key=None,reverse=False)

  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)

 该方法没有返回值,但是对列表的对象进行排序

list1=[(2,3,3),(4,4,5,3,3),(4,5)]

#使用默认参数进行排序,即按元组的第一个元素来排序
list1.sort()
print (list1)

#按下标为1,即第2个元素,倒序排序
list1.sort(key=lambda x:x[1],reverse=True)
print (list1)

#先按下标为0,即第1个元素排序,如果第1个元素相同,则按下标为1,即第2个元素排倒序排序
list1.sort(key=lambda x:(x[0],x[1]),reverse=True)
print (list1)

#按元组的长度排序
list1.sort(key=lambda tup:len(tup))
print (list1)

运行结果:
[(2, 3, 3), (4, 4, 5, 3, 3), (4, 5)]
[(4, 5), (4, 4, 5, 3, 3), (2, 3, 3)]
[(4, 5), (4, 4, 5, 3, 3), (2, 3, 3)]
[(4, 5), (2, 3, 3), (4, 4, 5, 3, 3)]

注意:笔者从此篇开始用的是python3.7,此前是python2.7。后续会继续更新,有任何问题欢迎留言交流

猜你喜欢

转载自www.cnblogs.com/wenxiacui/p/10962086.html