Python----list 常用方法总结
Posted yttbk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python----list 常用方法总结相关的知识,希望对你有一定的参考价值。
一、创建列表,把使用逗号分隔的数据用中括号[ ]括起来即为一个列表,列表也叫数组、list、array;
列表里面也可以再套列表,一个列表里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:
1 list = [] #空列表 2 list1 = [‘小白‘,‘小黑‘,‘小芳‘,‘小华‘,‘小高‘] #普通数组 3 list2 = [‘小白‘,[‘小黑‘,500],‘小芳‘,‘小华‘,‘小高‘] #二维数组 4 list3 = [‘小白‘,[‘小黑‘,500,[‘anby‘,‘joker‘]],‘小芳‘,‘小华‘,‘小高‘] #三维数组
角标、索引
通过下标可取到列表中的元素,下标从0开始计数,也就是说,比如说一个列表,有个5元素,那么它第一个元素下标就是0,第二个就是1,以此类推,最后一个元素的下标可以写-1,字符串也有下标,
和列表一样
二、列表中添加新元素
b = [1,2,3,4] citys = [] citys.append(‘北京‘) #在列表末尾增加一个元素 citys.insert(0,‘上海‘) #insert可指定增加的位置,在列表中0的位置即最前面增加一个元素,一次只能加一个,下标不能写负数,如果指定的下标不存在,那么就是在末尾添加 citys.extend(b) #合并列表 将b列表中的元素添加到citys中
三、查看列表中的值
print(cities[0]) #通过指定下标索引来访问列表中的值,这里0即代表查询列表中第一个元素 print(cities[-1]) #-1代表最后一个元素 print(cities.index(‘广州‘)) #获取该元素的下标,如果有多个,则返回第一个,如果找不到该元素的话,会报错 print(cities.count(‘广州‘)) #查看该元素在list里面出现的次数,如果该元素不存在,那么返回0 遍历列表 for i in list : print(i)
四、修改列表中的值,只能修改已有下标的元素
1 list[1]=‘南京‘ #修改指定位置的元素值,指定的下标不存在,会报错,将角标为1的元素值修改为:南京
五、删除列表中的值
cities.pop() #删最后一个元素 cities.pop(0) #删除指定下标的元素 cities.remove(‘北京‘) #删除指定的元素,有多个相同的元素,删除第一个 cities.clear() #清空list del cities[-1] #删除指定下标对应的元素 del cities #删除整个列表, list删除后无法访问 print(cities.pop()) #有返回值 print(cities.remove()) #无返回值
六、列表操作的函数
list.reverse()将列表反转 #注:list 中有字符串、数字时不能排序,排序针对同类型 list.sort()排序,默认升序 list.sort(reverse=True) 降序排列 len(list) #列表元素个数 max(list) #返回列表元素最大值 min(list) #返回列表元素最小值 list(seq) #将元组转换为列表 list1+list2 #合并list list*3 #复制列表3次 enumerate 用法(打印元素对应的下标),同时取下标和元素 list = [‘a‘,‘b‘,‘c‘] for index,value in enumerate(lists): print(index,value) #打印结果如下: 0 a 1 b 2 c
七、列表list的循环和切片
7.1 循环,如果直接for 循环一个list 的时候,那么每次循环的值都是这个list 里面的元素
for i in list: print (i)
7.2 切片,切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,即顾头不顾尾;前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样,实例如下:
1 name[n:m] #切片是不包含后面那个元素的值(顾头不顾尾) 2 3 name[:m] #如果切片前面一个值缺省的话,从开头开始取 4 5 name[n:] #如果切片后面的值缺省的话,取到末尾 6 7 name[:] #如果全部缺省,取全部 8 9 name[n:m:s] #s:步长 隔多少个元素取一次 10 11 #步长是正数,从左往右取 12 13 #步长是负数,从右往左取 14 15 #注:切片同样适用于字符串,字符串也有下标 16 17 lis = list(range(1,21)) 18 19 print(lis[:18:-1]) #-1倒序,开头没有取值,所以默认从20往左取值,取到18的下标(19),但不顾尾,所以19不取 20 21 #打印结果: 22 [20]
八、列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。
实例1:要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)):list = list(range(1,11))
实例2:生成[1x1, 2x2, 3x3, ..., 10x10]可以用 list = list(x * x for x in range(1,11))
实例3:for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:list = list(x * x for x in range(1,11) if x%2== 0)
实例4:使用两层循环,可以生成全排列:
list = [m + n for m in ‘ABC‘ for n in ‘XYZ‘]
print(list)
输出结果:[‘AX‘, ‘AY‘, ‘AZ‘, ‘BX‘, ‘BY‘, ‘BZ‘, ‘CX‘, ‘CY‘, ‘CZ‘]
实例5:for循环其实可以同时使用两个甚至多个变量,比如dict的items()可以同时迭代key和value:
法一:
>>> d = {‘x‘: ‘A‘, ‘y‘: ‘B‘, ‘z‘: ‘C‘ }
>>> for k, v in d.items():
... print(k, ‘=‘, v)
结果:
y = B
x = A
z = C
九、总结
1,列表是一个有序的对象集合
2,一个对象在另外一个对象中吗?用 in 来检查
3,从列表中删除对象 remove
remove:取一个对象值作为唯一参数。remove方法会从列表中删除指定数据值的第一次出现。
如果在列表中找到了这个数据值,就会从列表中删除包含这个值的对象(同时列表的大小减一)。如果在列表中没有找到这个数据值,会报错。
4,从列表中弹出对象 pop
pop:取一个可选的索引值(indexof)作为参数。pop方法根据对象的索引值从现有列表删除和返回一个对象。
如果调用pop时没有指定索引值,将删除和返回列表中的最后一个对象。如果指定了一个索引值,则会删除和返回那个位置上的对象。
如果列表为空或者调用pop时指定了一个不存在的索引值,会报错。
5,用对象扩展列表 extend
extend:取一个对象列表作为唯一参数。extend方法接收第二个列表,将其中的各个对象增加到现有列表。如果要将两个列表合并为一个列表,这个方法就非常有用。
6,在列表中插入一个对象 insert/append
insert:取一个索引值和一个对象作为参数。insert 方法将一个对象插入到现有列表中指定索引值的前面。
这样就可以将对象插入到现有列表的开头,或者插入到列表中的任何位置。要把对象插入到列表末尾,用append 。用法 num.insert(2,"abc")
7,如何复制一个数据结构?不要使用赋值操作符复制列表;应当使用copy方法。
赋值操作都指向同一个数据,如果修改一个列表,另一个也会改变;如果想让另一个变量引用一个现有列表,可以使用赋值操作(=)
copy:list2 = list1.copy() ;如果想建立现有列表中对象的副本,用他们初始化一个新列表,就一定要使用copy 方法
8,列表切片的使用【start:stop:step】不包含stop 索引值
step 为正数时,从右至左;step 为负数时,从左至右
以上是关于Python----list 常用方法总结的主要内容,如果未能解决你的问题,请参考以下文章