python3基础语法——对list基本操作(创建/添加元素/取值/删除/修改/常用函数)

序列是Python中最基本的数据结构。是任意对象的有序集合,可以嵌套也不必数据类型一致;操作包括索引,切片,加,乘,检查成员等。下面将详细介绍:

1. 创建

可以嵌套;可以不必数据类型一致(数字,字符串,列表,元组,集合或者字典等)

list=[]
list1= ['Google', 'Runoob', 1997, 2000]			# 结果为:['Google', 'Runoob', 1997, 2000]
list2 = [1, (2, 3), 4, 5 ]

a = list([1, (2, 3), 4, 5 ])		# 结果为:[1, (2, 3), 4, 5 ]
b = list("Google")					# 结果为:['G', 'o', 'o', 'g', 'l', 'e']

2. 添加元素

函数 参数 功能描述
list.insert() index和’obj’(obj可以是单个元素,也可以是列表、元组等) 将obj作为整体,在指定位置添加元素,如果指定的下标不存在,那么就是在末尾添加
list.append() 可以是单个元素,也可以是列表、元组等 在list 末尾增加一个元素
list1.extend() 可以是单个元素,也可以是列表、元组等 不是将追加的列表或元组当成一个整体,而是追加列表或元组中的元素
“+” 列表、元组等“+”列表、元组等 追加列表或元组中的元素
“*” 列表、元组等“*”number 重复列表中元素number遍(不是对列表中的元素值进行扩大或缩小)
# 接上段代码

list1.append(list2)			# list2作为一个元素,添加到list1末尾:['Google', 'Runoob', 1997, 2000, [1, (2, 3), 4, 5]]
list1.extend(list2)			# list2中的每个元素,作为list1中的元素逐个添加在末端:['Google', 'Runoob', 1997, 2000, 1, (2, 3), 4, 5]
list1+list2					# 追加列表或元组中的元素:['Google', 'Runoob', 1997, 2000, 1, (2, 3), 4, 5]
list1*3						# 列表中元素3遍:['Google', 'Runoob', 1997, 2000, 'Google', 'Runoob', 1997, 2000, 'Google', 'Runoob', 1997, 2000]

3. 取值

其中,index为正数时,从左到右,从0开始记;如果index为负数时,从右到左,从-1开始记

list[n] 取index=n的元素
list[n:m] 切片
list[:m] 切片从头开始取到index=m-1
list[n:] 切片从index=n的元素取到最后
list[:] 取全部
list[n: m: s] s:步长;从index=n的开始到index=m-1,隔多少个元素取一次

注:切片同样适用于字符串,字符串也有下标

4. 删除

目的 函数 说明
根据目标元素所在位置的索引值进行删除 del del是一个“语句”,没有“参数”
根据元素的进行删除 .remove() 函数是删除第一个和指定值相同的元素,如果找不到该元素,该方法将会引发 ValueError 错误。
将列表中所有元素全部删除 .clear()
a_list = [20, 'crazyit', 30, -4, (3, 4), 'crazyit', 3.4]

# 根据“索引”删除元素
del a_list[-1]				# [20, 'crazyit', 30, -4, (3, 4), 'crazyit']
del a_list[1: 3]			# [20, -4, (3, 4), 'crazyit', 3.4]

# 根据“元素值”删除第一个和指定值相同的元素
a_list.remove(30)			# # 删除第一次找到的30:[20, 'crazyit', -4, (3, 4), 'crazyit', 3.4]
a_list.remove('crazyit')	# 删除第一次找到的'crazyit':[20, 30, -4, (3, 4), 'crazyit', 3.4]
a_list.remove(30)			#再次尝试删除 30,引发 ValueEroor 错误

# 删除整个列表
a_list.clear()				# []

5. 修改元素的值

列表的元素相当于变量,因此程序可以对列表的元素赋值,即修改列表的元素;方法有两种: 索引和 slice 语法。其中,在执行slice操作时,并不要求新赋值的元素个数与原来的元素个数相等。这意味着通过这种方式既可为列表增加元素,也可为列表删除元素。下面介绍slice使用方法:

b_list = list(range(1, 5))
c_list = list(range(1, 10))

b_list[1: 3] = ['a', 'b']	# 从index=1开始取到index=3(不包含)元素赋值为新列表的元素:[1, 'a', 'b', 4]
b_list[2: 2] = ['x', 'y']	# 从index=2开始取到index=2(不包含)元素赋值为新列表的元素,就是插入“元素”:[1, 'a', 'x', 'y', 'b', 4]
b_list[2: 5] = []			# 从index=2开始取到index=5(不包含)元素赋值为空列表,就是删除:[1, 'a', 4]
# 指定step为2,被赋值的元素有4个,因此用于赋值的列表也必须有4个元素
c_list[2: 9: 2] = ['a', 'b', 'c', 'd']	# [1, 2, 'a', 4, 'b', 6, 'c', 8, 'd']

6. list常用方法

列表包含的所有方法,如下所示:

dir(list)
[‘append’, ‘clear’, ‘copy’, ‘count’, ‘extend’, ‘index’, ‘insert’, ‘pop’, ‘remove’, ‘reverse’, ‘sort’]

函数 参数 功能
.count() obj 一个元素(可以是字符串,元组,列表等) 用于统计列表中该元素出现的次数
.index() obj,start,end 在列表的指定范围内搜索元素obj,返回index值;如果找不到该元素,会引发 ValueError 错误
.pop() 空/index 移除列表中指定索引处的元素,如果不指定,默认会移除列表中最后一个元素
.reverse() 将列表中所有元素反向存放
.sort() key=None, reserse=False 对列表元素进行排序(key 参数用于指定从每个元素中提取一个用于比较的键。例如 key=str.lower 表示在排序时不区分字母大小写;reverse 参数用于设置是否需要反转排序,默认 False 表示从小到大排序;如果将该参数设为 True,将会改为从大到小排序)

注意:
其中使用 pop() 方法,可以实现一种常见的数据结构——栈。栈是一种特殊的数据结构,它可实现先入后出(FILO)功能,即先加入栈的元素,反而后出栈。

# .count()和.index()方法的使用
d_list = [2, 30, 'a', 'b', 'crazyit',[5, 30], 30]

d_list.count([5, 30])			# 计算列表中[5, 30]的出现次数
d_list.index(30))				# 定位元素30的出现位置
d_list.index(30, 2)				# 从索引2处开始、定位元素30的出现位置
d_list.index(30, 2, 4)			# 从索引2处到索引4处之间定位元素30的出现位置,因为找不到该元素,会引发 ValueError 错误
# .sort()方法的使用
e_list = ['Python', 'Swift', 'Ruby', 'Go', 'Kotlin', 'Erlang']

e_list.sort()							# 对列表元素排序:默认按字符串包含的字符的编码大小比较
e_list.sort(key=len)					# 指定key为len,指定使用len函数对集合元素生成比较的键,也就是按字符串的长度比较大小
e_list.sort(key=len, reverse=True)		# 指定反向排序

你可能感兴趣的:(python)