python中列表的常用方法,python列表操作方法

您所在的位置:网站首页 python访问列表元素有几种 python中列表的常用方法,python列表操作方法

python中列表的常用方法,python列表操作方法

2024-07-12 16:38| 来源: 网络整理| 查看: 265

目录 1.python序列详解 序列索引序列切片序列相加序列相乘检查元素是否在序列中和序列相关的内置函数2. Python列表(list)详解 列表的创建列表元素访问删除列表向列表list中添加元素删除列表list中的元素修改列表list中的元素查找列表中的元素

1.python序列详解

序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可以通过每个值所在的位置编号(即索引)进行访问。 Python中字符串、列表、元组、字典、集合都是序列,列表和元组中的数据是有序的,可以通过索引访问;而字典和集合是无序的,它们不支持索引、切片、相加、相乘操作Python解释器的安装步骤。

序列索引

序列中每个元素都有自己的位置编号(索引),从起始元素开始,索引从0开始递增。在这里插入图片描述 Python中支持负数索引,此时,从末尾元素开始,索引从-1开始计数,从右往左依次递减。在这里插入图片描述

序列切片

切片是Python中访问序列的一种方法,他的语法格式为: sequence[start : end : step] 其中,sequence表示序列名称;start表示想要访问的值的起始位置索引(包含该位置);end表示切片的结束位置索引(不包含该位置),不指定则默认为序列长度;step表示切片步长,不指定则默认步长为1,第二个冒号可省略。 例如:

str1 = "我爱学Python" print(str1[:2]) print(str1[1:4:2]) print(str1[-1:]) print(str1[::-1])

运行结果为:

我爱 爱P n nohtyP学爱我

序列相加

Python中,支持两种类型相同的序列使用“+”进行相加操作,即将两个序列的元素连接。 类型相同,指的是“+”运算符的两侧序列要么都是列表类型,要么都是元组类型,要么都是字符串。

str1 = "我爱学Python" str2 = "好好学习天天向上" print(str1 + str2) list1 = [1, 2, 3, 4] list2 = [3, 4, 5, 6] print(list1 + list2)

运行结果:

我爱学Python好好学习天天向上 [1, 2, 3, 4, 3, 4, 5, 6]

序列相乘

Python中,将序列和数字n相乘,会得到一个新序列,新序列内容和n个原序列相加结果相同。

str1 = "我爱学Python" print(str1 * 3) print(str1 + str1 + str1) list1 = [1, 2, 3, 4] print(list1 * 2) print(list1 + list1)

运行结果如下:

我爱学Python我爱学Python我爱学Python 我爱学Python我爱学Python我爱学Python [1, 2, 3, 4, 1, 2, 3, 4] [1, 2, 3, 4, 1, 2, 3, 4]

列表可以通过乘法运算,实现列表初始化:

dp = [1] * 10 print(dp)

结果如下,表示将列表dp初始化为:长度为10,且每个元素都是1的列表。

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

检查元素是否在序列中

Python中,可以使用关键字 in 来检查元素是否在序列中,语法格式: value in sequence 。其中,value 表示要检查的元素,sequence 表示指定的序列,返回True或False。 例如:

str1 = "我爱学Python" print('P' in str1) list1 = [1, 2, 3, 4] print(5 in list1)

结果如下:

True False

和序列相关的内置函数 函数功能len()计算序列的长度,即返回序列中元素的个数max()返回序列中元素的最大值min()返回序列中元素的最小值sum()计算序列中元素的和,使用该函数时,序列中元素必须都是数字,不能是字符或字符串,否则会报错。因为Python解释器无法判断‘+’是要做求和运算还是序列连接操作list()将序列转化为列表str()将序列转化为字符串tuple将序列转化为元组sorted对序列中元素进行排序reversed()将序列中的元素反向,不会改变原序列顺序,而是指向一个新的地址,如原序列list1,可通过q = list(reversed(list1)),得到一个元素顺序与原序列list1相反的新序列qenumerate()将序列索引和序列元素组合成元组,形成一个新序列

举例:

str1 = "我爱学Python" list1 = [1, 5, 3, 4] print(len(str1)) print(max(list1)) print(min(list1)) print(sum(list1)) print(sorted(list1)) q = list(reversed(list1)) print(q) print(list(enumerate(list1)))

运行结果如下:

9 5 1 13 [1, 3, 4, 5] [4, 3, 5, 1] [(0, 1), (1, 5), (2, 3), (3, 4)]

2. Python列表(list)详解

Python中,列表将元素放在[ ]中,使用 ‘,’ 将元素隔开: [element1,element2,…,elementn],其中element1~elementn表示列表中的元素,它没有个数限制,它可以是python中支持的任何数据类型。

列表的创建 # 使用[ ]创建 # 语法格式 listname = [element1, element2, ..., elementn] list1 = [] # 创建空列表 list2 = [1, 2, [2, 3], (2, 4), {1: 3}, {9}, 'python', 1.2] # 使用list()创建,将其他数据类型转换为list list3 = list('我爱Python') # 将字符串转换为list list4 = list((1, 3, 4)) # 将元组转换为list list5 = list({1: 3, 2: 4}) # 将字典转换为list, 此时结果为list5 = [1, 2] list6 = list({1, 2, 35, 6}) # 将集合转换为list list7 = list(range(1, 10)) # 将1到9的区间转化为list list8 = list() # 创建空列表

依次打印结果如下:

[] [1, 2, [2, 3], (2, 4), {1: 3}, {9}, ‘python’, 1.2] [‘我’, ‘爱’, ‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’] [1, 3, 4] [1, 2] [1, 2, 35, 6] [1, 2, 3, 4, 5, 6, 7, 8, 9] []

列表元素访问

前面提到列表是序列的一种,我们可以通过索引访问列表元素,也可以通过切片的方式访问,列表可以相加,也可以和数字相乘。

# 列表元素数访问 # 访问方式1:listname[index] list1 = ['a','b','c',"f"] print(list1[0]) print(list1[-1]) # 访问方式2:listname[start:end:step] print(list1[0:2]) print(list1[1:]) print(list1[-1:]) print(list1[::2]) print(list1[::-1])

打印结果如下:

a f [‘a’, ‘b’] [‘b’, ‘c’, ‘f’] [‘f’] [‘a’, ‘c’] [‘f’, ‘c’, ‘b’, ‘a’]

删除列表

对于不再使用的元素,可以进行删除:del listname

list1 = ['a', 'b', 'c', "f"] del list1 print(list1)

删除后不能再使用,报错如下:

Traceback (most recent call last): File “D:\pythonProjects\section\test.py”, line 5, in < module> print(list1) NameError: name ‘list1’ is not defined

向列表list中添加元素

Python中有几种专门的方法用来向列表中添加元素:append()函数、extend()函数和insert()函数。

# 向列表中添加元素 # 方式1:append() list1 = ['a', 'b', 'c', "f"] list2 = ['我爱Python', '你呢'] list1.append(1) # 追加单个元素 list1.append(list2) # 追加列表,同理还可追加元组,集合,字典 list1.append((1, 2)) list1.append({51, 'ds'}) list1.append({1: 3, 4: 3}) print(list1) # 方式2:extend() # list2.extend(1) 此时会报错 TypeError: 'int' object is not iterable # append() 和extend()的区别在于 : # 1.append()可以传入Python支持的任一对象;extend()只能传入序列 # 2.append()将传入对象视为一个整体;extend()不会把列表或元组视为一个整体,而是把它们包含的元素逐个添加到列表中 list2.extend([2, 3, 4]) list2.extend(('今天天气不错', 2)) print(list2) # 方式3:insert() # append() 和extend()只能在列表末尾追加,insert()可以在列表中任意位置插入元素,并将插入元素视为一个整体 # listname.insert(index,obj) list3 = ['你好', 'Python', 1, 2, 3] list3.insert(0, 'hello') list3.insert(1, [0, 1]) print(list3)

运行结果如下:

[‘a’, ‘b’, ‘c’, ‘f’, 1, [‘我爱Python’, ‘你呢’], (1, 2), {‘ds’, 51}, {1: 3, 4: 3}] [‘我爱Python’, ‘你呢’, 2, 3, 4, ‘今天天气不错’, 2] [‘hello’, [0, 1], ‘你好’, ‘Python’, 1, 2, 3]

删除列表list中的元素

Python提供了4种删除列表中元素的方法:del、pop()、remove()、clear()

# 删除列表中的元素 # 方式1:del 根据索引值删除元素 # 格式1:del listname[index] # 格式2:del listname[start:end:step] list1 = [1, 2, 3, 34, 5, 6] del list1[0] print(list1) del list1[1:4:2] print(list1) # 方式2:pop() 根据索引值删除元素 # 格式:listname.pop(index) # 如果不写index,默认删除列表最后一个元素 list2 = [1, 2, 3, 4, 5, 6, 9, 7, 75] list2.pop(0) print(list2) list2.pop(-1) print(list2) list2.pop() print(list2) # 方式3:remove() 根据元素值删除元素 # 格式: listname.remove(value) # remove()方法只会删除第一个和value相等的元素, # 而且列表中必须存在该元素,否则会报 ValueError: list.remove(x): x not in list # 所以使用remove()前,最好先进行判断 list3 = [1, 2, 1, 3, 4, 5, 6, 7, 8, 9, 0] list3.remove(1) print(list3) if 10 in list3: list3.remove(10) print(list3) else: print('10不在list3中') # 方式4:clear() 将列表中元素全部删除 # 格式: listname.clear() list4 = [2, 34, 5, 6, 6] list4.clear() print(list4)

运行结果如下:

[2, 3, 34, 5, 6] [2, 34, 6] [2, 3, 4, 5, 6, 9, 7, 75] [2, 3, 4, 5, 6, 9, 7] [2, 3, 4, 5, 6, 9] [2, 1, 3, 4, 5, 6, 7, 8, 9, 0] 10不在list3中 []

修改列表list中的元素

Python中可以使用索引和切片两种方式来对列表元素进行修改。

# 修改列表中的元素 # 方式1:listname[index] = value list1 = [22, 33, 4, 4, 5, 6, 1] list1[0] = 'ds' print(list1) # 方式2:listname[start:end:step] = [value1,..] list2 = [2, 3, 3, 4, 5, 6, 77, 78, 98, 3] list2[0:4] = ['p', 'y', 't', 'h', 'd', 'jian'] # 不指定步长时,若传入的列表长度大于切片长度,则会在切片后添加列表其余元素 print(list2) # 指定步长时,要求传入列表元素个数与切片元素个数相等 # 否则报错 ValueError: attempt to assign sequence of size 4 to extended slice of size 3 list2[6::2] = ["a", 'b', 'c'] print(list2) 查找列表中的元素 # 检查列表中的元素 # 1.index()方法,返回元素在列表中的索引(如果元素存在列表中,否则报错) # 格式:listname.index(obj,start,end), # start和end可以省略,默认返回列表中第一次出现的位置索引 list1 = [1, 2, 3, 4, 5, 6, 63, 2, 2, 6] print(list1.index(2)) print(list1.index(2, 7, 9)) # 2.count()方法 # 格式:listname.count(obj) # 返回 obj在列表中的个数 print(list1.count(2)) # 如果元素不在列表中,则返回0 print(list1.count('s'))

运行结果如下:

1 7 3 0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3