知识点
1、列表的索引和切片(跟字符串的索引和切片一样)
li=['alex',[1,2,3],'user','age','六','abc'] l1=li[0] print(l1)#结果为alex l2=li[1] print(l2)#结果为[1, 2, 3] l3=li[0:3] print(l3)#结果为['alex', [1, 2, 3], 'user']
2、列表的增删改查
2.1、增
#append 增加到列表最后面 li=['alex',[1,2,3],'user','age','六','abc'] li.append('name') print(li))#结果为['alex', [1, 2, 3], 'user', 'age', '六', 'abc', 'name'] #持续增加,但输入'Q'退出增加 li=['alex',[1,2,3],'user','age','六','abc'] while 1: name = input('请输入需要添加员工的姓名:') if name.strip().upper()=='Q': #1)以防用户输入的时候前后有空格,用strip操作方法删除前后空格;2)以防用户输入的小写的'q',用upper操作方法转换成大写的'Q' break else: li.append(name)#用列表的append操作方法增加到列表里面 print(li) #insert 插入在某个元素后面,比如:在'age'后面插入一个'hobby' li=['alex',[1,2,3],'user','age','六','abc'] li.insert(4,'hobby')#'age'在li列表里的索引是3,但我们是在他后面加入元素,所以我们填写的索引是4 print(li) #extend 迭代插入,也是插入在最后面。PS:不能迭代插入int数据类型,会报错 li=['alex',[1,2,3],'user','age','六','abc'] li.extend('123') print(li)#结果为['alex', [1, 2, 3], 'user', 'age', '六', 'abc', '1', '2', '3'] li=['alex',[1,2,3],'user','age','六','abc'] li.extend(123) print(li)
2.2、删
#pop 按索引删除 li=['alex',[1,2,3],'user','age','六','abc'] i=li.pop(1)#pop是有返回值的 print(li,i) i=li.pop()#不输入索引,默认删除最后一个 print(li,i) #remove 按元素删除,没有返回值,它返回的None li=['alex',[1,2,3],'user','age','六','abc'] i=li.remove('alex') print(li,i) #clear 清空列表 li=['alex',[1,2,3],'user','age','六','abc'] li.clear() print(li) #del 删除这个列表和切片删除 li=['alex',[1,2,3],'user','age','六','abc'] del li[0:2]#切片删除元素 print(li)#结果为['user', 'age', '六', 'abc'] li=['alex',[1,2,3],'user','age','六','abc'] del li#删除这个列表 print(li)#结果报错,因为没有这个列表了
2.3、改
#按索引去改 li=['alex',[1,2,3],'user','age','六','abc'] li[0]='liu' print(li)#结果为['liu', [1, 2, 3], 'user', 'age', '六', 'abc'] #切片去改 li=['liu', [1, 2, 3], 'user', 'age', '六', 'abc'] li[0:2]='123456'#把你要切片修改的两个元素先删除,在把输入的元素迭代增加到里面 print(li)#结果为['1', '2', '3', '4', '5', '6', 'user', 'age', '六', 'abc'] li[0:2]=['liu','xiao'] print(li)#结果为['liu', 'xiao', 'user', 'age', '六', 'abc']
2.4、查
li=['alex',[1,2,3],'user','age','六','abc'] #for循环查看 for i in li: print(i) #切片查看 print(li[0:2])
2.5、一些公共的方法
#len 查看列表的长度 li=['alex',[1,2,3],'user','age','六','abc'] l1=len(li) print(l1) #count 查看某个元素在列表里面出现的次数 li=['alex',[1,2,3],'user','age','六','abc','age'] num=li.count('age') print(num) #index 查看某个元素的索引,如果没有出现会报错 li=['alex',[1,2,3],'user','age','六','abc'] l1=li.index('user') print(l1)
2.6、排序
#sort 正向排序 li=[1,3,5,7,8,2,4,6] li.sort() print(li)
#反向排序 li=[1,3,5,7,8,2,4,6] li.sort(reverse=True) print(li)
#反转 li=[1,3,5,7,8,2,4,6] li.reverse() print(li)
2.7、列表的嵌套
li=['alex',[1,2,'liu'],'user','age','六','abc'] #在列表找出user的s这个元素 i=li[2][2]#第一个[2]里的数字代表要取出li列表索引为2的元素;第二个[2]里的数字代表从刚才取出元素中索引为2的元素 print(i)#结果为e #在列表找出user的s这个元素 print(li[li.index('user')][li[li.index('user')].find('s')])#结果为s #在列表找出[1,2,'liu']的2这个元素 i=li[li.index([1,2,'liu'])][li[li.index([1,2,'liu'])].index(2)] ''' li.index([1,2,'liu']):找到这个[1,2,'liu']元素的索引 li[li.index([1,2,'liu'])]:利用上面找到的索引找出这个元素 li[li.index([1,2,'liu'])].index(2):前面跟上面一样,后面index(2)从刚才找到的元素里面再找索引为2元素 ''' print(i)#结果为2
#因为从列表取出的元素是字符串,也可以跟字符串的操作方法一起运用 li[0]=li[0].capitalize() print(li)#结果为['Alex', [1, 2, 'liu'], 'user', 'age', '六', 'abc'] li[0]=li[0].capitalize() li[li.index('alex')]=li[li.index('alex')].capitalize() print(li)#结果为['Alex', [1, 2, 'liu'], 'user', 'age', '六', 'abc'] li[0]=li[0].capitalize() li[li.index([1,2,'liu'])][li[li.index([1,2,'liu'])].index('liu')]=li[li.index([1,2,'liu'])][li[li.index([1,2,'liu'])].index('liu')].upper() print(li)#结果为['alex', [1, 2, 'LIU'], 'user', 'age', '六', 'abc']
2.8、元祖
只读列表,可循环查循,可切片;儿子不能改,孙子可以改
tu=(1,2,'alex',[1,2,'liu'],3,'xiao') print(tu[1])#结果为2 print(tu[0:3])#结果为(1, 2, 'alex') #循环输出 tu=(1,2,'alex',[1,2,'liu'],3,'xiao') for i in tu: print(i) #在元祖里面的列表插入元素 tu=(1,2,'alex',[1,2,'liu'],3,'xiao') tu[3][2]=tu[3][2].upper() print(tu)#结果为(1, 2, 'alex', [1, 2, 'LIU'], 3, 'xiao') tu[3].append('s') print(tu)#结果为(1, 2, 'alex', [1, 2, 'LIU', 's'], 3, 'xiao') tu[3].insert(1,'n') print(tu)#结果为(1, 2, 'alex', [1, 'n', 2, 'LIU', 's'], 3, 'xiao')
2.9、join 操作方法
s='alex' li=['ad','cd'] s1='_'.join(s) li1=''.join(li) print(s1,li1)#结果为a_l_e_x adcd
2.10、range 操作方法
for i in range(0,10): print(i)#正序输出1到9 for i in range(10): print(i)#正序输出1到9 for i in range(0,10,2): print(i)#正序输出0,2,4,6,8 for i in range(10,0,-1): print(i)#倒序输出10到1 for i in range(0,10,-1): print(i)#结果是空白,不会报错
课后习题
1、列表li=['alex','wusir','eric','rain','alex']完成以下操作
#1)计算列表的长度并输出 li=['alex','wusir','eric','rain','alex'] print(len(li))#结果为5 #2)列表中追加元素'seven',并输出添加后的列表 li=['alex','wusir','eric','rain','alex'] li.append('seven') print(li)#结果为['alex', 'wusir', 'eric', 'rain', 'alex', 'seven'] #3)请在列表的第1个位置插入元素'Tony',并输出添加后的列表 li=['alex','wusir','eric','rain','alex'] li.insert(0,'Tony') print(li)#结果为['Tony', 'alex', 'wusir', 'eric', 'rain', 'alex'] #4)请修改列表第2个位置的元素为'Kelly',并输出修改后的列表 li=['alex','wusir','eric','rain','alex'] li[1]='Kelly' print(li)#结果为['alex', 'Kelly', 'eric', 'rain', 'alex'] #5)请将列表l2=[1,'a',3,4,'heart']的每一个元素添加到列表li中,一行代码实现不得循环添加 li=['alex','wusir','eric','rain','alex'] l2=[1,'a',3,4,'heart'] li.extend(l2) print(li)#结果为['alex', 'wusir', 'eric', 'rain', 'alex', 1, 'a', 3, 4, 'heart'] #6)请将字符串s='qwert'的每个元素添加到列表li中,一行代码实现步的循环添加 li=['alex','wusir','eric','rain','alex'] s='qwert' li.extend(s) print(li)#结果为['alex', 'wusir', 'eric', 'rain', 'alex', 'q', 'w', 'e', 'r', 't'] #7)请删除列表中的元素'sric',并输出删除后的列表 li=['alex','wusir','eric','rain','alex'] li.remove('eric') print(li)#结果为['alex', 'wusir', 'rain', 'alex'] #8)请删除列表中的第2个元素,并输出删除后的列表 li=['alex','wusir','eric','rain','alex'] li.pop(1) print(li)#结果为['alex', 'eric', 'rain', 'alex'] #9)请删除列表中第2到第4个的元素,并输出删除后的列表 li=['alex','wusir','eric','rain','alex'] del li[1:4] print(li)#结果为['alex', 'alex'] #10)请将列表元素反转,并输出反转后的列表 li=['alex','wusir','eric','rain','alex'] li.reverse() print(li)#结果为['alex', 'rain', 'eric', 'wusir', 'alex'] #11)请计算出'alex'元素在列表出现的次数,并输出次数 li=['alex','wusir','eric','rain','alex'] print(li.count('alex'))#结果为2
2、列表li=[1,3,2,'a',4,'b',5,'c'],通过切片形成新的列表
#1)形成新的列表l1,l1=[1,3,2] li=[1,3,2,'a',4,'b',5,'c'] l1=li[0:3] print(l1) #2)形成新的列表l2,l2=['a',4,'b'] li=[1,3,2,'a',4,'b',5,'c'] l2=li[3:6] print(l2) #3)形成新的列表l3,l3=[1,2,4,5] li=[1,3,2,'a',4,'b',5,'c'] l3=li[0::2] print(l3) #4)形成新的列表l4,l4=[3,'a','b'] li=[1,3,2,'a',4,'b',5,'c'] l4=li[1:-2:2] print(l4) #5)形成新的列表l5,l5=['c'] li=[1,3,2,'a',4,'b',5,'c'] l5=li[-1] print(l5) #6)形成新的列表l6,l6=['b','a','3] li=[1,3,2,'a',4,'b',5,'c'] l6=li[-3:0:-2] print(l6)
#2)将列表中数字3变成字符串'100' #方法一 li=[2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv'] li[1]='100' print(li) #方法二 li=[2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv'] li[li.index(3)]=li[li.index(3)].replace('3','100') print(li)