漫步人生路之Python旅途(四)班荆道故
列表list初识
列表是python的基础数据类型之一 ,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型:
list列表的定义:
list_ = []
list_1 = ["aaa","bbb","cccc","ddd"] list_2 = [1,2,3,4,5] list_3 = ["abc",145,true,["小明","小红",278,33.9],25.9]
列表的索引和切片操作:
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] # 列表的访问是通过下标的方式 print(list_1[0]) # 访问列表第一个元素 print(list_1[1]) # 访问列表第二个元素 print(list_1[-1]) # 访问列表最后一个元素 print(list_1) # 访问整个列表
列表的访问与字符串切片类似,通过索引访问列表元素,列表的切片也与字符串类似.
列表的常用方法:
append():向列表的末尾追加元素:
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.append("我是追加的") # 打印如下内容: ['abc', 145, true, ['小明', '小红', 278, 33.9], 25.9, '我是追加的']
extend(可迭代对象):列表中迭代添加数据:
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.extend("我是迭代的") print(list_1) # 打印如下内容: ['abc', 145, true, ['小明', '小红', 278, 33.9], 25.9, '我', '是', '迭', '代', '的']
注意extend(参数)必须是可迭代的对象如list,str,dict,tuple,set等,如整形,bool是不可迭代的所以不能用作参数
insert(index,object):列表中插入元素
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.insert(1,"我是插入的") # 默认插在列表的末尾 # 打印如下内容: ['abc', '我是插入的', 145, true, ['小明', '小红', 278, 33.9], 25.9]
注意:如果用户输入的索引超过列表的范围则添加到列表的末尾.
del 删除列表,列表中的元素:
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] del list_1 # 删除列表中所有元素,包括列表名 list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] del list_1[0] # 根据列表索引进行删除,删除列表中的第一个元素 print(list_1) # 打印内容如下: [145, true, ['小明', '小红', 278, 33.9], 25.9]
注意:del是没有返回值的
pop(index):删除列表元素
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.pop() # 默认不写参数是删除末尾元素 print(list_1) # 打印内容如下: ['abc', 145, true, ['小明', '小红', 278, 33.9]]
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.pop(1) # 根据索引删除元素,删除第一个索引元素 print(list_1) # 打印内容如下: ['abc', true, ['小明', '小红', 278, 33.9], 25.9]
注意pop()删除是有返回值的,可以用一个变量来接收被删除的数据
remove(object):根据元素名删除元素
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.remove(true) # 根据元素的名称删除元素 print(list_1) # 打印内容如下: ['abc', 145, ['小明', '小红', 278, 33.9], 25.9]
clear():清空列表
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.clear() print(list_1) # 打印内容如下: []
copy():拷贝整个列表
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_2 = list_1.copy() # 将list_1拷贝一份到list_2 print(list_2) # 打印内容如下: ['abc', 145, true, ['小明', '小红', 278, 33.9], 25.9]
reverse():列表倒序,将列表中的内容倒着排序
list_1 = ["abc",145,true,["小明","小红",278,33.9],25.9] list_1.reverse() print(list_1) # 打印内容如下: [25.9, ['小明', '小红', 278, 33.9], true, 145, 'abc'] # ['小明', '小红', 278, 33.9] 没有被改变
注意:reverse()函数只能是操作本层的对于内部嵌套的数据不能进行改变
sort():升序排列,字符串是按照ascii码表进行排序
list_1 = [1,4,88,3,2,77] list_1.sort() # 升序排列 print(list_1) # 打印内容如下: [1, 2, 3, 4, 77, 88] list_1 = [1,4,88,3,2,77] list_1.sort(reverse = true) # 降序排列 print(list_1) # 打印内容如下: [88, 77, 4, 3, 2, 1]
sort()排序只支持同种类型进行对比,不支持其它类型进行对比排序.例如字符串只能和字符串相比,整形只能和整形相比较.
replace(old:str,new:str,int:count):替换列表中元素的内容,默认可以省略count,省略count会替换所有要替换的字符串,指定count可以设置替换的次数,replace()不会改变原来的数据,会返回一个修改后的值,如果想要查看修改后的数据,需要用一个变量接收,或者直接用本身接收.来实现替换的目的:
buf = "testttt" buf = buf .replace("t","a") # 替换数据 buf_b = buf.replace("t","a") # 将替换后的数据保存到临时变量中 print(buf_b) print(buf) # 打印内容如下: aesaaaa aesaaaa
count(str,start,end):统计字符串出现的次数.默认不写start和end将在整个字符串中查找,如果设置start和end则会在指定的范围内进行查找.在字符串中可以指定范围,在列表中不允许指定范围,只能在整个列表进行查找
buf = "testttt" num = buf.count("t") # 在整个字符串内进行查找 print(num) # 打印内容如下: 5 buf = "testttt" num = buf.count("t",0,4) # 在字符串的前三位进行查找 print(num) # 打印内容如下: 2
list_1 = [1,145,8,"小明","小红",278,33.9,1,25.9] num = list_1.count(1) # 列表中不能指定范围查找 print(num) #打印如下内容 2
index(object,start,end):默认只写object会在整个列表中进行查找,但是只显示找到第一个元素的索引.可以指定start和end来指定查找范围.
list_1 = [1,145,8,"小明","小红",278,33.9,1,25.9] num = list_1.index(8) # 在整个列表中进行查找 print(num) # 打印如下内容: 2
list_1 = [1,145,8,"小明","小红",278,33.9,1,25.9] num = list_1.index(8,0,2) # 在前两个元素进行查找,找不到会报错 print(num) # 打印内容如下: valueerror: 8 is not in list
range(start,end,step):与列表的切片类似,下面是常用方法:
for i in range(5): print(i) for i in range(100,0,-1): # 倒序打印100-1 print(i) for i in range(1,100,2): # 打印1-100所有奇数 print(i) for i in range(2,101,2): # 打印1-100所有偶数 print(i)
上一篇: 记一次数据库为latin1编码查询中文乱码问题处理
下一篇: python爬虫常见面试题(一)