2023年7月26日发(作者:)
pythonlist元素类型_python的list()列表数据类型的⽅法详解⼀、列表列表的特征是中括号括起来的,逗号分隔每个元素,列表中的元素可以是数字或者字符串、列表、布尔值......等等所有类型都能放到列表⾥⾯,列表⾥⾯可以嵌套列表,可以⽆限嵌套字符串的特征是双引号括起来的列表是有序的,是可以被修改的 S这个对象调⽤了list类⾥⾯提供的append⽅法,list中有很多⽅法,str⾥⾯也有很多⽅法li = [1,2,3,4,66,77] 通过list类创建的对象,这个对象叫liprint(li)C: D:/pyproject/day11数据类型的⽅法/[1, 2, 3, 4, 66, 77]如下列表总共有6个元素,不管多少个嵌套的列表,在列表中的列表都算⼀个元素li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True]print(li)C: D:/pyproject/day11数据类型的⽅法/[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]1.列表通过索引(下标)的⽅式取值,0代表第⼀个,1代表第⼆个,2代表第三个li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True]print(li[0])C: D:/pyproject/day11数据类型的⽅法/12.列表通过切⽚的⽅式取值(中间⽤:分割),切⽚的结果也是列表li[0:5] 表⽰⼤于等于0,⼩于5这个范围(不包括第五个索引位置)li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True]print(li[0:5])C: D:/pyproject/day11数据类型的⽅法/[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90]]3.取值范围是从开头取到倒数第⼆个值li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True]print(li[0:-1])C: D:/pyproject/day11数据类型的⽅法/[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90]]4.把全部元素都取出来li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True]print(li[:])C: D:/pyproject/day11数据类型的⽅法/[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]经过测试发现 列表的索引和切⽚跟字符串str的使⽤⽅法⼀模⼀样5.⽤for循环把列表⾥⾯的值都取出来li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]for n inli:print(n)C: D:/pyproject/day11数据类型的⽅法/12北约beiye['ee', [1, 3, 5], 90]True6.⽤while循环把列表⾥⾯的值都取出来li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]whileTrue:print(li)breakC: D:/pyproject/day11数据类型的⽅法/[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]7.链表的概念字符串创建之后是不可以修改的,但是列表这个创建之后就可以被修改,看下图⽅框⾥⾯表⽰是内存的地址,mi这个字符串要想把i改成ai的话,在原来的基础上是修改不了,只能新建⼀个,因为字符串在内存中是挨着的,列表就不⼀样了,列表在内存中不是挨着的,但是每个元素在内存中都有⼀个链表,链表就是红圈内的⼀个地址,就是因为有它所以系统知道下⼀个元素所在的位置,如果我新加⼀个元素的话,只需要修改下对应的链表就可以了,所以列表是创建好之后是可以修改的8.既然能修改,我们就来修改下列表中的元素通过索引的⽅式来修改li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]li[1] = 120print(li)C: D:/pyproject/day12列表/[1, 120, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]把元素改成⼀个列表试试看li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]li[1] = [11,22,33]print(li)C: D:/pyproject/day12列表/[1, [11, 22, 33], '北约', 'beiye', ['ee', [1, 3, 5], 90], True]通过切⽚的⽅式修改列表中的元素li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]li[1:3] = [20, 30]print(li)C: D:/pyproject/day12列表/[1, 20, 30, 'beiye', ['ee', [1, 3, 5], 90], True] 加上列表的元素的索引的位置 就可以删除元素了,这是删除元素的第⼀种⽅式li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]del li[1]print(li)C: D:/pyproject/day12列表/[1, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]通过切⽚的⽅式删除指定的范围内的元素,这是删除元素的第⼆种⽅法li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]del li[2:5]print(li)C: D:/pyproject/day12列表/[1, 2, True]10.通过in操作 判断字符串或者是数字是否在列表元素⾥⾯,在⾥⾯则为True,不在⾥⾯就为假li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]v= 2 inliprint(v)C: D:/pyproject/day12列表/li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]v= 200 inliprint(v)C: D:/pyproject/day12列表/e11.如何取列表元素⾥⾯的嵌套的列表中的元素,最终取到5这个元素先取出列表中的列表li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]S= li[4]print(S)C: D:/pyproject/day12列表/['ee', [1, 3, 5], 90]取到列表之后在继续往下⾯取,看上⾯的结果,5在这个列表中的第⼀个元素⾥⾯,ee为第第0个元素,所以我们下次取就是li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]S= li[4][1]print(S)C: D:/pyproject/day12列表/[1, 3, 5]现在取到这⾥了,只剩下⼀个列表了,5这个元素是第⼆个元素,所以连接起来⼀起取就是li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]S= li[4][1][2]print(S)C: D:/pyproject/day12列表/512.把字符串转换成列表应该怎么转换,各种相互转换str 字符串int 数字list 列表我们之前把数字转换成字符串是这样写 S = str(a) a是数字,S是转换成的结果我们之前把字符串换成数字是这样写 S = int(a) a是字符串,S是转换成的结果把字符串换成列表就是 S = list(a) a是字符串,S是转换成的结果a = "gouguoqi"S=list(a)print(S)C: D:/pyproject/day12列表/['g', 'o', 'u', 'g', 'u', 'o', 'q', 'i']也可以这样写S = list("gouguoqi")print(S)C: D:/pyproject/day12列表/['g', 'o', 'u', 'g', 'u', 'o', 'q', 'i']如果a是⼀个数字,就不能转换成列表了,因为数字也不能被for循环a = 123S=list(a)print(STypeError:'int' object is not iterabl 数字对象不是可迭代的a = 123for n ina:print(n)TypeError:'int' object is not iterabl 数字对象不是可迭代的13.把列表转换成字符串该怎么转换S = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True]a=str(S)print(type(a),a)C: D:/pyproject/day12列表/ [1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]虽然现在是字符串的类型了。但是这个结果不是我们想要,我们是想要这些字符串拼接起来只能⾃⼰写个for循环了(1)第⼀种⽅法,⾃⼰写for循环,⼀个⼀个的循环,因为元素中既有数字,⼜有字母,所以得定义⼀个空,然后循环的时候转换成str类型,才能进⾏相加,⼀个⼀个的循环,最 后把a打印出来S = [1, 2, "北约", "beiye", "gouguoqi", True]a= ""for n inS:b=str(n)a= a + b a+=bprint(a)C: D:/pyproject/day12列表/12北约beiyegouguoqiTrue(2)第⼆种⽅法,前提是列表元素⾥⾯的元素都是字符串,可以⽤join的⽅法S = [ "北约", "beiye", "gouguoqi"]v= "".join(S)print(v)C: D:/pyproject/day12列表/北约beiyegouguoqi⼆、list的⽅法(list是⼀个list类,li是list类的⼀个对象) li = [111,22,33,,44,55,66]1. append(self, p_object) 英⽂意思就是 追加p_object这个我们称之为 参数 (self可以忽略)list类的append⽅法,得传⼀个参数才可以使⽤这个⽅法的的作⽤就是在列表的末尾追加⼀个元素为什么不能像字符串那样把结果赋值为⼀个新的变量呢,因为之前不是说过了字符串是不可以被修改的,只能赋值给⼀个新的变量,⽽列表是可以被修改的,所以可以直接进⾏修改,不⽤赋值到新的变量S = ["北约", "beiye", "gouguoqi"]v= ("miaoye")print(v)print(S)C: D:/pyproject/day12列表/['北约', 'beiye', 'gouguoqi', 'miaoye']也可以追加多次,也可以追加数字,可以追加字符串,可以追加列表S = ["beiye", "gouguoqi"]("miaoye")(66)([11,22,33])print(S)C: D:/pyproject/day12列表/['beiye', 'gouguoqi', 'miaoye', 66, [11, 22, 33]]2. clear(self)() -> None -- remove all items from L把列表元素清空L = ["beiye", "gouguoqi"]()print(L)C: D:/pyproject/day12列表/[]3. copy(self) 拷贝,浅拷贝() -> list -- a shallow copy of L shallow [ˈʃæləʊ] 浅拷贝⼀个⼀模⼀样的列表出来L = ["beiye", "gouguoqi"]a=()print(L)print(a)C: D:/pyproject/day12列表/['beiye', 'gouguoqi']['beiye', 'gouguoqi']4. count(self, value) 计数计算⼀个指定的元素在列表⾥⾯出现了⼏次(value) -> integer -- return number of occurrences of value计算'66'这个字符串在列表元素中出现了⼏次L = ["11","22","33","222",22,22,22]v= ('66')print(v)C: D:/pyproject/day12列表/0计算'22'这个字符串在列表元素⾥⾯出现了⼏次L = ["11","22","33","222",22,22,22]v= ('22')print(v)C: D:/pyproject/day12列表/1计算22这个数字在列表元素⾥⾯出现了⼏次L = ["11","22","33","222",22,22,22]v= (22)print(v)C: D:/pyproject/day12列表/35. extend(self, iterable) 扩展iterable 可迭代的,就是这个extend这⽅法的参数必须是可以迭代的才⾏(数字就不能迭代)⽬前知道的 字符串可以迭代 列表可以迭代,元组也能迭代(iterable) -> None -- extend list by appending elements from the iterable把我们的的参数,在python内部通过for循环的⽅式,增加到原来的列表的末尾,作为n个新的元素增加到原来的列表⾥⾯,参数必须是可迭代的⽽append则是把我们的参数当成是⼀个整体放到列表的末尾L = ["11","22","33"](["44","55","66"]) 相当于for i in ["44","55","66"] ((i))print(L)C: D:/pyproject/day12列表/['11', '22', '33', '44', '55', '66']append追加的是⼀个整体L = ["11","22","33"](["44","55","66"])print(L)C: D:/pyproject/day12列表/['11', '22', '33', ['44', '55', '66']]如果extend的参数是⼀个字符串呢,我们看⼀下L = ["11","22","33"]("woai") 相当于for i in "woai"((i))print(L)C: D:/pyproject/day12列表/['11', '22', '33', 'w', 'o', 'a', 'i']如果extend的参数是⼀个元组呢,我们在看⼀下(黄⾊部分就是⼀个元组)L = [11,22,"gouguoqi","aa"](("55",66,))print(L)C: D:/pyproject/day12列表/[11, 22, 'gouguoqi', 'aa', '55', 66]因为数字不是可迭代的,所以不⾏L = ["11","22","33"](123456)print(LTypeError:'int' object is not iterable6. index(self, value, start=None, stop=None)(value, [start, [stop]]) -> integer -- return first index of ValueError if the value is not present寻找指定的元素在列表的索引(下标)位置,找到第⼀个之后就不找了,可以指定寻找范围,如果找不到程序就报错了,跟字符串中的index⽅法类似,但是字符串中有find⽅法,找不到结果为-1,不知道列表为啥没有find⽅法L = ["11","55","22","33","55","gouguoqi"]v= ("55")print(v)C: D:/pyproject/day12列表/1L= ["11","55","22","33","55","gouguoqi"]v= ("555")print(v)ValueError:'555' is not in list7. insert(self, index, p_object)(index, object) -- insert object before index index 索引,下标必须指定2个参数 ⼀个是index ⼀个是 object在指定的索引之前插⼊你指定的参数作为列表的元素L = ["11","55","gouguoqi"](2,"heihei")print(L)C: D:/pyproject/day12列表/['11', '55', 'heihei', 'gouguoqi']8. pop(self, index=None) 这是删除元素的第三种⽅法,前⾯2种是del 索引 delli[1]del 切⽚ delli[2:5]([index]) -> item -- remove and return item at index (default last).Raises IndexError if list is empty or index is out of range.删除指定索引(下标)位置的元素,不加参数的话,默认删除最后⼀个元素删除索引位置为1的元素L = ["11","55","gouguoqi","22",66](1)print(L)C: D:/pyproject/day12列表/['11', 'gouguoqi', '22', 66]删除倒数第⼆个元素L = ["11","55","gouguoqi","22",66](-2)print(L)C: D:/pyproject/day12列表/['11', '55', 'gouguoqi', 66]不加参数,默认是删除最后⼀个元素L = ["11","55","gouguoqi","22",66]()print(L)C: D:/pyproject/day12列表/['11', '55', 'gouguoqi', '22']还能获取删除的值L = ["11","55","gouguoqi","22",66]v= (2)print(v)C: D:/pyproject/day12列表/uoqi9. remove(self, value) 这是删除元素的第四种⽅法,前⾯3种⽅法del 索引 delli[1]del 切⽚ delli[2:5]pop⽅法删除指定的⼀个元素,删除第⼀个之后,就不再继续往后找了(value) -> None -- remove first occurrence of ValueError if the value is not present.L = ["11", "55", "gouguoqi", "55", "22", 66]("55")print(L)C: D:/pyproject/day12列表/['11', 'gouguoqi', '55', '22', 66]10、reverse(self) [rɪˈvɜ:s] 颠倒,反转把列表的元素重新进⾏倒序排列L = [1,2,3,4,5,6,7,8]e()print(L)C: D:/pyproject/day12列表/[8, 7, 6, 5, 4, 3, 2, 1]11. sort(self, key=None, reverse=False) 排序不指定参数默认是升序排列默认升序排列L = ["www","taobao","china","abc"]()print(L)C: D:/pyproject/day12列表/['abc', 'china', 'taobao', 'www']降序排列L = ["www","taobao","china","abc"](reverse=True)print(L)C: D:/pyproject/day12列表/['www', 'taobao', 'china', 'abc']12.列表⾥⾯的in操作,判断元素是否在列表⾥⾯L = [11,22,33,55,66]v= 33 inLprint(v)C: D:/pyproject/day12列表/
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690307303a329845.html
评论列表(0条)