Python基础(四)——列表

本文介绍了Python中列表的基础操作,如索引和切片、列表连接、元素替换、反转方法,以及列表的长度、元素重复、查找、排序和多维列表处理。此外,还涉及了字符串与列表的转换、函数应用和常见误区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文以Python3以上为学习基础。

目录

1、列表可以使用索引和切片。

2、列表的连接

3、可以改变列表的某一个元素。

4、列表反转

5、列表的一些基本操作。

6、列表的函数

7、多维列表


list (列表) 是中括号之间的一列逗号分隔的值。

这里tmp就是一个列表。

列表中的元素不是固定统一一个类型。

很明显列表里面有有int型,有字符串,还有布尔类型也就是(True、False)。

1、列表可以使用索引和切片。

正索引:

负索引:

注意:所有的切片操作会返回一个包含请求的元素的新列表。

类似下面这种就是一种列表的拷贝

切片:

正常的切片就是类似 tmp[1:3]。python中切片可以进行多次切片处理。

类似于上面的例子,第一步切片处理结果:['a','b',True]。

这时候的列表的下标变成了以下形式:

第二步切片处理获取的结果就是:[True]。

2、列表的连接

利用 + 号。

3、可以改变列表的某一个元素。

利用索引对你想改变的元素操作即可。

4、列表反转

方法一:tmp[::-1]

注意:这里可以看到。反转列表不是把原来的列表反转,这里创建了一个新的值,这个值和原来的列表内容是反的。

这个方法是不常用的,最常用的是下面的方法二。

方法二:函数reversed()

这里的 list(reversed(tmp)) 中的 list() 是指定为列表。

如果你不指定就是下面的结果:

具体原因后面详细说。

你也可以直接把某个列表反转。

5、列表的一些基本操作。

(1)列表长度:len()。

这个长度是指列表中的元素个数。

(2)列表元素重复:*

可以看到直接改变了列表的值。

(3)判断某个元素是否在列表中:in

结果就是True或者False。也就是在或者不在,布尔型。

(4)列表中最大或者最小的数字:最大:max()、最小:min()

这里分为两种情况:

情况一:列表的元素类型都是int类型。也就是全是数字。他们的最大最小就是数字最大或者最小。

即使你带上负数:

情况二:列表里面的元素不是int型的。按照字符在ASCII编码中所对应的数字进行比较的。

我们先看一部分ASCII码表。

下面获取最大和最小的字符:

(5)列表比较:cmp()

这个在Python 3 以上已经被取消了。

(6)追加元素:append()

追加相同类型还是不同类型都是可以的。

其实它还等同于以下方法:列表的最大长度(元素个数)到无穷大 = 你想追加的元素。


6、列表的函数

下面我们看看列表的函数有哪些。

        

dir(list)的结果就是list相关的函数。

我们先看前后不带下划线的函数:

append、count、extend、index、insert、pop、remove、reverse、sort

(1)append:追加元素。上面已经说过了。

(2)extend:将两个list合并、或者说是把一个列表追加到另一个列表后面。

注意:列表是可以修改的。但是它在本身基础上进行修改。所以,我们看到上例中tmp列表发生了改变。

(3)count:某个元素在该列表中出现多少次,也就是列表中的某个元素有多少个。

(4)index:检索某个元素在列表中的位置。

结果就是它的下标。

(5)insert:追加元素。和append() 不同的是,它可以在任何位置增加一个元素。

2的位置是下标的位置。

如果插入位置大于最大的下标呢?

在下标是999的位置追加字符串zxc

其实就会在最后追加。

(6)remove:删除某个元素。

如果这个元素不存在呢?

就会发生以下错误:

ValueError: list.remove(x): x not in list

如果有多个元素呢?

很明显,删除第一个元素。并且是对列表进行原地修改。

所以很明显我们要结合in操作(上面讲了,用于判断某个元素是否在列表中),随后再删除元素,非常合理。

(7)pop:也是删除某个元素。不过是通过下标(索引)取删除对应下标(索引)的元素。

和remove的区别在于:一个通过值去删除元素,一个通过下标(索引)去删除元素。

如果没有设置下标呢?

默认删除最后一个。

如果下标超过列表的最大值呢?

就会发生以下错误:

IndexError: pop index out of range

(7)reverse:反转列表元素。

(8)sort:列表排序。实现的是从小到大的排序。

如果是混合类型的列表?

会报错。

相同类型是可以的。

我们看到默认排序是从小到大排序,如果是从大到小呢?

你可以理解成,先从小到大排序,然后把它反转过来。


7、多维列表

对于多维列表的访问方法:

类似于上例中的:tmp[0][1]

[0]:先取横坐标的值,取得结果:[1,2,3]

[1]:在[0]取得的结果中看纵坐标。取得结果:2


8、字符串和列表的相互转换

split()函数和join()函数。

(1)split:以某个字符作为分割符,将字符串分割,随后放在列表中。(这句话是个人理解,可能不对)

当然,如果你用split()分割以后没有赋值给某个变量(上例中的tmp1),那么还是它本身字符串。

如果没有分割符呢?

可以看到并没有分割操作,直接把字符串放在列表中。

但是,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等都是分割符

因此,你可以看看下面的例子。

可以看到,空格、换行(\n)、制表符(\t)都作为分割符进行分割。

上例中的\n被解析成换行符了,因此,变量tmp的结果在wo 的后面发生了换行。

还记得之前说过的 r (原始字符)吗?

如果我们加上原始字符呢?

很明显,所有的特殊字符(换行符(\n)、制表符(\t))都没有发生转义,只有空格仍然作为分割符,进行字符串分割,随后放在列表中。

(2)join:split的逆向操作。

上例中,利用 . 将列表中的所有元素连接起来。

为了方便阅读,我们再换成%试试。

以上是列表的相关知识,如果有错误,欢迎指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值