Python基础(五)之数值类型列表
1、简介
在Python中,列表(List)是一种有序、可变的数据类型,用于存储和处理多个元素。列表是一种容器,可以包含任意数据类型元素,包括数字、字符串、列表、字典等。
2、创建列表
列表的创建方式:
# 空列表enty_list = [] # 有元素的列表# 整数列表int_list = [1, 2, 3, 4]# 字符串列表str_list = ['Python', 'Hello', 'my', 'haha']# 布尔型列表bool_list = [True, False]# 浮点数列表float_list = [3.12, 3.13, 3.14]# 将其他类型转化为列表s = ”Python”s_list = list(s)print(s_list)print(type(s_list))'''结果['P', 'y', 't', 'h', 'o', 'n']'''
3、访问列表元素
在Python中,通过索引可以访问列表中的元素,索引从0开始,也可以使用倒索引(-1)从列表的尾部开始访问列表中的元素
s = 'Python's_list = list(s)print(s_list)print(s_list[0])print(s_list[-1])'''['P', 'y', 't', 'h', 'o', 'n']Pn'''# 使用切片获取元素print(s_list[0:2])# ['P', 'y']print(s_list[0:5:2])# ['P', 't', 'o']print(s_list[4:0:-2])# ['o', 't']'''['P', 'y']['P', 't', 'o']['o', 't']'''
4、修改列表
Python 中,可以通过索引修改指定位置的元素
s = 'Python's_list = list(s)print(s_list)print('------')s_list[0] = 'Hello'print(s_list)# ['Hello', 'y', 't', 'h', 'o', 'n']
5、 新增列表元素
5.1、在列表末尾添加一个元素
s = 'Python's_list = list(s)print(s_list)print('-----------------')s_list.append('hello')print(s_list)'''['P', 'y', 't', 'h', 'o', 'n']-----------------['P', 'y', 't', 'h', 'o', 'n', 'hello']'''
5.2、 在列表的指定位置添加元素
s = 'Python's_list = list(s)print(s_list)print('-------')# 在列表首位增加一个元素s_list.insert(0, 'Hello')print(s_list)# 在列表末尾增加一个元素s_list.insert(len(s_list), 'laster')print(s_list)'''['P', 'y', 't', 'h', 'o', 'n']-------['Hello', 'P', 'y', 't', 'h', 'o', 'n']['Hello', 'P', 'y', 't', 'h', 'o', 'n', 'laster']'''
6、移除列表中的元素
6.1、list.remove(x)
从列表中删除第一个值为x 的元素,未找到指定元素时,出发 ValueError 异常
s = ”Hello”s_list = list(s)print(s_list)print('--------')# 删除列表中的指定的元素(只删除第一个相同的元素)s_list.remove('o')print(s_list)# 删除元素不存在s_list.remove('P')print(s_list)'''['H', 'e', 'l', 'l', 'o']--------['H', 'e', 'l', 'l']Traceback (most recent call last): File ”C:\Users\tcwux\Desktop\test.py”, line 10, in s_list.remove('P')ValueError: list.remove(x): x not in list'''
6.2、list.pop([i])
删除元素列表中指定位置的元素,并返回被删除的元素。未指定位置时,list.pop()删除并返回列表的最后一个元素。
s = 'Python's_list = list(s)print(s_list)print('---------')remove_el = s_list.pop(1)print(remove_el)print(s_list)# 删除不存在的索引时 会报错IndexError: pop index out of rangeremove_el_emty = s_list.pop(10)print(remove_el_emty)'''['P', 'y', 't', 'h', 'o', 'n']---------y['P', 't', 'h', 'o', 'n']Traceback (most recent call last): File ”C:\Users\tcwux\Desktop\test.py”, line 8, in remove_el_emty = s_list.pop(10) ^^^^^^^^^^^^^^IndexError: pop index out of range'''
6.3、 list.clear()
删除列表中的所有元素
s = 'Python's_list = list(s)print(s_list)print('--------')s_list.clear()print(s_list)'''['P', 'y', 't', 'h', 'o', 'n']--------[]'''
7、查找指定元素 -- list.index(x[, start[, end]])
在列表中查找第一个符合要求的元素的索引。未找到时,报出ValueError异常。也可通过start,end两个值对列表进行切片,并在切片内搜索指定的元素索引(该索引是与原列表的索引值保持一致,不是在切片后的列表重新遍历索引)
s = 'Hello Python's_list = list(s)print(s_list)print('-----------')print('元素o的第一个索引:', s_list.index('oprint('在Python的列表中找到元素o的索引:', s_list.index('o', 6))print('在Python的列表中找到元素o的索引:', s_list.index('o', 6,11))'''['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']-----------元素o的第一个索引: 4在Python的列表中找到元素o的索引: 10在Python的列表中找到元素o的索引: 10'''
7、统计元素在列表中出现的次数 -- list.count(x)
返回指定元素x在列表中出现的次数
s = 'Hello Python's_list = list(s)print(s_list)print('-----------')print(s_list.count('l'))print(s_list.count('P'))print(s_list.count('t'))# 不存在的元素次数为0'''['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']-----------210'''
8、排序列表中的元素 -- list.sort(*, key=None, reverse=False)
对列表中的元素进行排序
s = 'Hello Python's_list = list(s)print(s_list)print('-----------')s_list.sort()print(s_list)print('-------------')s_int = '63728's_int_list = list(s_int)print(s_list)print('-------------')s_int_list.sort()print(s_int_list)'''['H', 'e', 'l', 'l', 'o', ' ', 'P', 'y', 't', 'h', 'o', 'n']-----------[' ', 'H', 'P', 'e', 'h', 'l', 'l', 'n', 'o', 'o', 't', 'y']-------------[' ', 'H', 'P', 'e', 'h', 'l', 'l', 'n', 'o', 'o', 't', 'y']-------------['2', '3', '6', '7', '8']'''
9、 翻转列表中的元素 -- list.reverse()
对指定的列表进行元素的翻转
s = ”hello”s_list = list(s)print(s_list)print('-----------')s_list.reverse()print(s_list)'''['h', 'e', 'l', 'l', 'o']-----------['o', 'l', 'l', 'e', 'h']'''
10、拷贝列表 -- list.copy()
将列表复制到新的列表中
s = 'Python's_list = list(s)print(s_list)print('----------')s_list_copy = []print(s_list_copy)s_list_copy = s_list.copy()print(s_list_copy)'''['P', 'y', 't', 'h', 'o', 'n']----------[]['P', 'y', 't', 'h', 'o', 'n']'''
11、遍历列表
将列表中的元素逐一取出
s = 'Python's_list = list(s)print(s_list)print('-------')for el in s_list: print(el)'''['P', 'y', 't', 'h', 'o', 'n']-------Python'''
【注】
遍历列表使用的是for循环, 可能有些人没有学到,可以提前了解一下。
补充:
对list中的方法及使用的方法进行补充
# Python 数据类型 列表list# 创建一个空的列表s_empty = []print('s_empty:', s_empty)# 使用list() 函数将字符串转化为列表s = ”Python”print('s的数据类型',type(s))# 字符串类型# 将字符串转化为 列表类型s_list = list(s) print('将字符串转化为列表类型:',type(s_list))# 打印列表数据print('列表数据为:', s_list)# 在列表中增加元素'''1、使用append() 在列表的末尾增加元素2、使用 insert() 在指定的位置增加元素'''# append() s_list.append('Hello')print('使用append()函数在s_list列表末尾增加新元素:', s_list)# insert() s_list.insert(0, 'insert')print('使用 insert() 函数在s_list列表头部增加新元素:', s_list)s_list.insert(7, 'newElement')print('使用 insert() 函数在s_list列表其他部位增加新元素:', s_list)# 删除元素'''1、使用del 若指定序列,删除指定位置的元素,若不指定元素,则清空列表的所有元素,且列表不可再访问2、使用remove(el) 函数删除列表中相同的元素3、使用pop() 出栈方式弹出元素 或删除指定序列的元素'''# del()#del s_list[7]#print('使用 del 函数删除s_list列表序列为7的元素元素:', s_list)'''del s_list[8]# 因序列不存在导致报错print('使用 del 函数删除s_list列表序列为7的元素元素:', s_list)IndexError: list assignment index out of range'''# del s_list# 删除整个列表,且删除后无法在访问s_list# remove()# s_list.remove('hello')# 删除的元素在列表中不存在报错 ValueError: list.remove(x): x not in lists_list.remove('Hello')print('使用remove删除列表中的相同元素:', s_list)”””删除的元素在列表中不存在报错ValueError: list.remove(x): x not in list”””# pop() s_pop = s_list.pop(0)print('使用pop() 函数进行删除元素,则会打印出删除的元素:', s_pop)print('使用pop() 函数进行删除元素后列表为:', s_list)# 不指定删除的元素,则自动删除列表的最后一个元素s_pop = s_list.pop()print('使用pop() 函数进行删除元素,则会打印出删除的元素:', s_pop)print('使用pop() 函数进行删除元素后列表为:', s_list)# 对列表进行修改操作'''1、对列表的指定序列的值进行修改如 list[0] = 12、使用切片 对列表进行批量的修改'''# 使用序列修改s_list列表中的某个值print('修改前的s_list列表:', s_list)s_list[0] = 'p'print('修改后的s_list列表:', s_list)# 使用切片,对列表进行大批量的修改s_list[3:6:2] = [1, 2]print('1使用切片修改后的s_list列表:', s_list)s_list[0:] = [1, 2, 3, 4, 5]print('使用切片修改后的s_list列表:', s_list)s_list = list(s)# 查询列表操作''' 1、使用index(x,star,end) 函数获取列表中指定的元素,或者元素的索引值 x 表示在列表中查找的元素, star 表示开始查找的下标索引位置 end 表示结束查找的下标索引位置'''print('获取列表s_list的索引:', s_list.index('o'))print('在指定的区间内,获取列表s_list的索引:', s_list.index('y', 0, 3))# 遍历列表 使用for循环遍历for el in s_list: print(el)# 拷贝列表 浅拷贝s_list_copy = s_list.copy()print('拷贝的列表结果为:', s_list_copy)s_list_copy = s_list[1:4].copy()print('使用切片拷贝列表的部分数据:', s_list_copy)# 扩展列表s_list1 = [1, 2, 3]s_list2 = ['P', 'y', 't', 'h', 'o', 'n']s_list1.extend(s_list2)print('扩展后的列表为:', s_list1)# 排序 sort() 列表中的元素均为 同一种类型 的时候才可以对其进行排序s_list_sort = ['P', 'y', 't', 'h', 'o', 'n']s_list_sort.sort()print('对s_list_sort排序后的结果:', s_list_sort)# 反向排序 sort(reverse=True) s_list_sort.sort(reverse = True)print('对s_list_sort倒序后的结果:', s_list_sort)# 列表中的元素数量print('s_list_sort元素的数量:', len(s_list_sort))# 列表中元素的最大值s_max = max(s_list_sort)print('s_list_sort中的最大值:', s_max)# 列表中元素的最小值s_min = min(s_list_sort)print('s_list_sort中的最小值:', s_min)