一、列表的增删改查
1、列表是有序的,可以进行索引和切片操作,同字符串,参照 python全栈-Day 3
li = ['alex',123,[1,2,3],'wusir','egon','女生','taibai'] #列表的增 li.append('jingjing') #在原列表尾部增加一个元素,若打印本行,则没有返回值结果为 None print(li) li.insert(4,'汪晓') #在原列表索引4的位置,插入一个元素 print(li) li.extend('爸爸') #在原列表尾部增加多个元素,把参数拆分为单个最小元素,参数必须为可迭代类型,数字是不行的 print(li) #列表的删 name = li.pop(-1) #按照索引删除,默认删除末尾元素。不建议使用,因为多次使用的索引值会变化可能会删除了错误的元素 print(li,name) #该方法有返回值,返回值为删除的索引对应的值 name = li.remove('爸') #按照元素删除,该方法无返回值 print(li,name) # name = li.clear() #清空列表,该方法无返回值 # print(li,name) # del li #在内存中删除列表,此时打印会报错,因为未被定义 # print(li) del li[3:5] #可切片删除 print(li) #列表的改 li = ['alex',123,[1,2,3],'wusir','egon','女生','taibai'] li[5] = '女神' #按照索引修改 print(li) li[0:2] = '云姐哈哈123' #切片修改,删除切片的元素,将赋值结果 拆分为单个最小元素插入到切片的位置 print(li) li[0:4] = [1,2,3,'云姐哈哈123'] print(li) #列表的查 li = ['alex',123,[1,2,3],'wusir','egon','女生','taibai'] print(li[0:4]) for i in li: print(i)
一个实例
#实例:用户可持续输入一个字符串,将全部字符串存到一个列表中并输出,若输入q则停止输入 staff_list = [] while 1: add_name = input('请输入新增的姓名') if add_name.upper() == 'Q': break elif bool(add_name) == True: staff_list.append(add_name) print(staff_list)
二、列表的其他方法
#列表的排序 li = [1,6,3,6,8,9,3,5,2] li.reverse() #翻转 print(li) li.sort() #正序排序 print(li) li.sort(reverse = True) #倒序排序 print(li) #公共方法 li = ['alex',123,[1,2,3],'wusir','egon','女生','taibai'] print(len(li)) #列表长度 print(li.count(123)) #计算列表中某元素的个数 print(li.index('wusir')) #通过元素找索引,列表只有index没有find
三、列表的嵌套
li = ['taibai','王静','汪晓',['alex','egon',89],23] print(li[3][1][2].capitalize()) li[2] = li[2].replace('晓','xiaoxiao') li[3][0] = li[3][0].upper() print(li)
四、元组
tu = (1,23,'alex',[2,3,4,'taibai'],'egon') print(tu[0:4]) #元组是只读列表,只能查询,可循环,可切片 for i in tu: print(i) tu[3][3] = tu[3][3].upper() #儿子不能改,孙子可能可以改(元组的元素为列表,该列表不能整个修改,但是该列表的子元素可以修改) print(tu) tu[3].append('sb') print(tu)
五、其他方法
s = 'alex' print('=='.join(s)) #参数必须为可迭代对象(有多个元素组成,str、list、tup、dict集合),将可迭代对象的每个元素用==连接 li = ['taibai','王静','jing'] print(''.join(li)) #列表转化为字符串用join(其中列表全部参数必须为str),字符串转换为列表用split for i in range(0,10,2): #range(首,尾,步长)是一个按数字排列的数字,顾头不顾尾 print(i) for i in range(10): print(i) for i in range(10,0,-1): #关于参数的限制,参照切片,python全栈-Day 3 print()
其他:del 方法的慎用
l = [11,22,33,44] for i in l: del l[l.index(i)] #按照索引删除 print(l) #[22, 44],del会让元素个数减少,但是索引值是从0、1、2、3,没有按照元素的个数变化 l = [11,22,33,44] for i in range(len(l)): del l[i] #按照元素删除 print(l) #报错,数组超出范围
课后作业
1、将列表的所有层级的子元素按照顺序打印出来
li = ['alex',1,2,[1,['wangjing'],'jingjing',(1,2,'wangjing')]] for i in li: if type(i) == list: li[li.index(i):li.index(i)+1] = i elif type(i) == tuple: li[li.index(i):li.index(i) + 1] = i else: continue print(li)