Python列表操作
Posted linan-8888
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python列表操作相关的知识,希望对你有一定的参考价值。
# encoding=utf-8 ‘‘‘ 所谓的可迭代对象指的是可以被for循环的对象 list 就是一个类 ;可迭代对象; 列表是有序的(可以通过索引查找元素) 补充说明:字符串一旦创建不能修改,可以通过索引查找值但不能修改值;列表可以通过索引查找值和修改值 1、列表是可变的,字符串是不可变的 2、列表中的元素可以是任何对象,列表相当于一个集合 3、列表(链表)的存储,每个元素是不连续,但是一个元素内存中保存该元素的值及下一个元素的地址,这样系统才能自动索引列表的所有元素 4、列表的取值;①通过索引进行取值list[index];②通过切片进行取值list[start:end]; 5、列表的元素是可以被修改;①通过索引进行修改list[index]=obj;②通过切片进行修改list[1:3]=[True,Fasle]; 6、删除列表的元素;①可以直接用 del list[index];②通过切片删除del list[start:end] 7、in 操作:string in list: 判断string是否在list中存在,是和list元素比较,不是和元素中的子元素比较 例如:‘石正文‘ in [1, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True] ——> False 8、字符串转换列表: 可以直接用list(string),内部使用for循环 9、列表转换字符串:①通过for循环实现(有数字类型元素); ②如果列表中的元素只有字符串的时候,可以通过join方法实现 #list类中提供的方法: ps:删除的方法有5个:①pop(index) ②remove(values) ③del list[index] ④del list[start:end] ⑤clear 1、append(self,p_object):追加元素,在列表后面追加元素,不产生新的对象,故无需变量赋值 2、clear(self):清空列表 3、copy(self):浅拷贝,只拷贝索引,不产生新的对象 4、count(self,values):计算values元素在列表中出现的次数 5、extend(self,iterable):追加可迭代对象(内部相当于对迭代对象进行循环并使用append()方法进行追加元素),iterable表示可迭代对象; 例如:li.extend("不得了")——>增加了三个元素(""不,"得","了")【任何可迭代对象都能实现,包括元组、列表、字符串】 6、index(self, value, star=None,stop=None):查找元素的索引位置,从左到右找,如果有重复的元素,找到第一个就结束,如果元素不存在,报错 7、insert(self,index,p_object):插入元素,在index位置插入p_object新元素 8、pop(self,index=None):pop默认删除最后一个元素,也可以传入索引位置进行删除,并且被删除的值可以被获取 remove(self,value):删除列表中的指定值,左边优先,如果有重复的元素,只删除最左边的一个 9、reverse(self):将当前列表进行反转 10、sort(self,key,reverse):排序;不传递reverse参数默认是按升序排序,传递reverse=True时,表示按降序排序[key,cmp参数欠] ‘‘‘ li = [1, 12, 34, ["石正文", "高淇"], "sfe", True] # 通过list类 创建的对象 # 索引、下标提取数据 print(li[1]) ‘‘‘2‘‘‘ # 切片取值,结果也是列表 print(li[0:4]) # 包头不包尾 print(li[0:-1]) ‘‘‘ [1, 12, 34, [‘石正文‘, ‘高淇‘]] [1, 12, 34, [‘石正文‘, ‘高淇‘], ‘sfe‘] ‘‘‘ #for循环 for lists in li: print(lists) ‘‘‘1 12 34 [‘石正文‘, ‘高淇‘] sfe True ‘‘‘ #列表元素被修改,直接索引位置 li[1]=200 print(li) ‘‘‘[1, 200, 34, [‘石正文‘, ‘高淇‘], ‘sfe‘, True] ‘‘‘ #通过切片可以进行修改 li[1:3]=[True,False] print(li) ‘‘‘[1, True, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True]‘‘‘ #删除 del li[1] print(li) ‘‘‘[1, False, [‘石正文‘, ‘高淇‘], ‘sfe‘, True]‘‘‘ # in操作 print("sfe" in li) ‘‘‘ True ‘‘‘ #字符串转换列表,可以直接使用list类进行转换 s = "afeefwef" print(list(s)) ‘‘‘ [‘a‘, ‘f‘, ‘e‘, ‘e‘, ‘f‘, ‘w‘, ‘e‘, ‘f‘] ‘‘‘ #将列表转换字符串 li = [11,22,33,"123","alex"] s = "" for lists in li: s += str(lists) print(s) ‘‘‘ 112233123alex ‘‘‘ #如果列表中的元素都是字符串的时候可以通过join进行连接 li = ["123","alex"] print("".join(li)) ‘‘‘ 123alex ‘‘‘ #列表类函数 li = [11,22,33,44] v = li.append(5) print(v) #输出结果为None,不需要append进行对象接收 ‘‘‘ None ‘‘‘ print(li) ‘‘‘[11, 22, 33, 44, 5]‘‘‘ #copy浅拷贝 li = [11,22,[True,False],22,44] v = li.copy() print(v) ‘‘‘[11, 22, [True, False], 22, 44] ‘‘‘ #count元素出现的次数 print(li.count(22)) ‘‘‘ 2 ‘‘‘ #append()和extend()函数的使用和对比 #extend对象是可迭代对象 li.append(["12","ew"]) li.append("不得了") print(li) ‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘] ‘‘‘ li.extend(["12","ew"]) print(li) ‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘]‘‘‘ li.extend("不得了") ‘‘‘ 相当于: for i in "不得了": li.append(i) ‘‘‘ print(li) ‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘, ‘不‘, ‘得‘, ‘了‘]‘‘‘ li.extend(("你好","hello",True)) print(li) ‘‘‘[11, 22, [True, False], 22, 44, [‘12‘, ‘ew‘], ‘不得了‘, ‘12‘, ‘ew‘, ‘你好‘, ‘hello‘, True]‘‘‘ #index()根据值获取当前值的索引位置,左边优先;找不到报错 li = [11,22,33,22,44] print(li.index(22)) #print(li.index(55)) #报错 ‘‘‘ 1 ‘‘‘ #insert(index,p_object)插入元素,在index位置插入p_object新对象 li.insert(2,"def") print(li) ‘‘‘ [11, 22, ‘def‘, 33, 22, 44] ‘‘‘ #pop(self,index):通过指定索引位置删除,无指定索引默认是最后一个元素,并且可以获取删除的元素值 li = [11,22,33,22,44] v = li.pop() print(li,v) ‘‘‘ [11, 22, 33, 22] 44 ‘‘‘ s = li.pop(2) print(li,s) ‘‘‘ [11, 22, 22] 33 ‘‘‘ #reverse(self):反转 (最后一个元素变第一个元素) li = [11,22,33,22,44] li.reverse() print(li) ‘‘‘[44, 22, 33, 22, 11]‘‘‘ #sort(self,key,reverse)默认升序,降序需要传递参数reverse=True li = [11,44,33,22,22] li.sort() print(li) ‘‘‘[11, 22, 22, 33, 44]‘‘‘ li.sort(reverse=True) print(li) ‘‘‘[44, 33, 22, 22, 11]‘‘‘
以上是关于Python列表操作的主要内容,如果未能解决你的问题,请参考以下文章
Python代码阅读(第13篇):检测列表中的元素是否都一样