IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 列表,劳模! -> 正文阅读

[开发工具]列表,劳模!

大家好,我是 Rocky0429。

今天来讲列表。列表与之前讲的数字类型和字符串一样,是 Python 中的基本对象类型。

在 Python 编程中列表无所不在,Python 优秀劳模奖的必得者,话不多说,直接开整。

认识列表

定义

在 Python 中,列表用一对方括号 '[]' 表示。

在 '[]' 里你可以是数字,字符串也可以是其他对象,甚至可以是多种不同的对象。

相比于其它编程语言,列表中元素的个数可以无限大,当然这是理想状态,毕竟还存在像内存限制等很多其它的限制。

>>> a = []
>>> a
[]
>>> b = ['1',2,'abcd']
>>> b
['1', 2, 'abcd']
>>> c = [1,'asd',[1,2,3]]
>>> c
[1, 'asd', [1, 2, 3]]

基本操作

列表中的元素也是有顺序的,和字符串一样,都是序列。

对于序列来说,基本的操作都大差不差。在字符串的时候我讲过它的几种操作,列表都有,比如:

>>> lst1 = [1,2,3,4,5]
>>> lst2 = ['a','b','c']
>>> lst1 + lst2
[1, 2, 3, 4, 5, 'a', 'b', 'c']
>>> lst1 * 3
[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]

在这基础上,列表还有其独特的操作:

列表可以修改,字符串不可修改。

>>> str = ['python','c++','java']
>>> str[0] = 'c#'
>>> str
['c#', 'c++', 'java']
>>> name = 'rocky'
>>> name[0] = 'R'
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

除了可以修改元素以外,列表还可以继续给自己添加元素。

但这不是说列表可以随便给自己加戏,必须要用 append() 方法向列表中追加元素,追加到末尾。

>>> str = ['python','c++','java']
>>> str[3] = 'c#'
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> str.append('c#')
>>> str
['python', 'c++', 'java', 'c#']

列表 VS ????字符串

上面说过,列表和字符串这两种对象类型有相似也有不同,那就在这顺便总结一下异同,也算是对前面所学的一个复习。

相同点:

1. 列表和字符串都是序列类型,都可以从左向右(从右向左),依次用 0、1、2、...(-1、-2、-3、...)表示,通过这样的方式建立索引和进行切片操作。

2. 对于序列的基本操作来说,二者都适用。

不同点:

1. 列表的可变的,字符串是不可变的。

2. 元素的包裹性。字符串里的每个元素都只是字符,而列表里的元素可以是其它任何的诸如数字,字符串,列表等对象类型。

操作列表

操作列表我依然准备从“索引 + 切片”以及列表函数两方面展开。

索引 + 切片

还记得什么是索引和切片嘛?记不清的可以看一下字符串(加链接)这篇文章。

列表和字符串一样,都是序列。

列表里的元素也是有顺序的,所以也有索引和切片,直接看下面的例子就能明白。

>>> a = [1,'2','rocky']
>>> a[0]
1
>>> a[1]
'2'
>>> a[:3]
[1, '2', 'rocky']
>>> a[1:3]
['2', 'rocky']
>>> a[2][0:3]
'roc'

通过上面的代码可以看出来,其实列表里的索引和字符串里的是一样的。

我们完全可以把之前在字符串中的理解照搬过来,所以列表也可以从右向左编号,依次是 -1、-2、-3、...

但是如果要是切片的话,这里要注意了,请看下面的例子:

>>> str = ['abc','bcd','123']
>>> str[-3:-1]
['abc', 'bcd']
>>> str[-1:-3]
[]

看明白了吗?

列表永远是从左向右排,不管你的下标是正的还是负的都是这个规律。

同时列表里可以跳,其实它的完整的写法是 list[start:end:step],默认step = 1 。

>>> str = [1,2,3,4,5,6,7,8]
>>> str[::2]
[1, 3, 5, 7]

step 也是可以等于负数的,str[::-1] 表示的是从列表的右边看这个列表,然后按照 step = 1 去列表中的元素,当然 step 还可以等于 -2,-3,具体多少由你来定。

>>> str = [1,2,3,4,5,6,7,8]
>>> str[::-1]
[8, 7, 6, 5, 4, 3, 2, 1]
>>> str[::-2]
[8, 6, 4, 2]

列表函数

列表中有很多函数,感兴趣的可以用 dir(list) 查看,在这里我主要说一些经常用到的。

append

添加元素,执行的结果是将某个元素加入到列表的最右边。

>>> str = [1,2,3,4,5]
>>> str.append(6)
>>> str
[1, 2, 3, 4, 5, 6]

extend

将两个列表合并。

>>> str = [1,2,3,4,5]
>>> str1 = ['abc','def']
>>> str.extend(str1)
>>> str
[1,?2,?3,?4,?5,?'abc',?'def']

count

这是一个可以帮我们搞清楚列表中的元素重复出现次数的方法。

>>> a = [1,2,3,4,5,1,2,3]
>>> a.count(1)
2
>>> a.append('a')
>>> a.append('a')
>>> a
[1, 2, 3, 4, 5, 1, 2, 3, 'a', 'a']
>>> a.count('a')
2
>>> a.count('b')
0

index

该函数能够查到你想查的函数在列表中第一次出现的位置,比起之前的文章我们说的索引,这个才是真真正正的索引。

>>> a = [1,2,3,4,'abc','def']
>>> a.index(2)
1

insert

这个厉害了,之前在 1 和 2 中我们说的 append 和 extend 只是能在列表的最右添加元素,而 insert 可以在列表的任意位置增加一个元素。

>>> a = [1,2,3,4,'abc','def']
>>> a.insert(0,'rocky')
>>> a
['rocky', 1, 2, 3, 4, 'abc', 'def']

remove & pop

列表中的元素不光能够增加元素,还可以删除元素, remove() 和 pop() 就是列表用来删除元素的函数。romove() 函数删除元素首先这个元素必须要存在,其次它是在原列表上进行删除,当列表中有重复元素的时候,只删除第 1 个。

>>> a = [1,2,3,4,1]
>>> a.remove(1)
>>> a
[2, 3, 4, 1]
>>> a.remove('a')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

pop() 函数如果填写删除元素的索引的话,那么就是删除该元素,如果没有制定删除元素的索引,则删除列表的最后一个元素,并且 pop() 函数有返回值,返回的就是删除的那个元素。

>>> a = [1,2,3,4,1]
>>> a.pop(1)
2
>>> a.pop()
1
>>> a
[1, 3, 4]

reverse

这个函数很简单,就是直接把列表的元素顺序反过来。

>>> a = [1,2,3,4,1]
>>> a.reverse()
>>> a
[1, 4, 3, 2, 1]

sort

这个函数是对列表进行排序,默认是递增排序,通过改变默认参数 reverse 的值可以实现递减排序。

>>> a = ['c','d','a','k']
>>> a.sort()
>>> a
['a', 'c', 'd', 'k']
>>> a.sort(reverse = True)
>>> a
['k', 'd', 'c', 'a']

好啦,Python 列表到这基本就结束啦,同样这部分的内容有丢丢多,但好在内容简单。

如果觉得有帮助的话,记得帮我分享一下,点赞再看的加持是我写作的小马达。

我是 Rocky0429,我们下次见。

想学习数据结构与算法的同学,可以关注下面这个公众号。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:01:24  更:2021-09-11 19:03:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:36:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码