python学什么教学_python零基础教学之列表教学
列表定义
之前的文章里我们已经讲过了数字和字符串,它们是两种很基本的对象,今天要学的 list 也是一种对象,它在 Python 中具有非常强大的功能。
在 Python 中,列表用一对方括号 -- [] 表示,在方括号里你可以数字,字符串也可以是其他对象,甚至可以是多种不同的对象。除此以外,列表中元素的个数可以无限大,当然这是理想状态,我们总还是要看硬件设备的脸色行事。
>>> a = []
>>> a
[]
>>> b = ['1',2,'abcd']
>>> b
['1', 2, 'abcd']
>>> c = [1,'asd',[1,2,3]]
>>> c
[1, 'asd', [1, 2, 3]]
索引和切片
还记得什么是索引和切片吗?如果忘记了,请回头去看这篇文章 -- 零基础学习 Python 之字符串 。
列表和字符串一样,都是序列,列表里的元素也是有顺序的,所以也是有索引和切片的,看看下面的例子就明白了。
>>> 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]
列表操作
列表是序列,但凡是序列都有基本的几种操作,比如在字符串的时候我们就讲过它的几种操作,列表的基本操作和字符串的差不多,在这基础上,列表还有其独特的操作,对于基本操作,比如连接操作等我在这里就不讲了,忘记的可以求看前面的文章,我在这里只是说一下列表独特的操作。
列表与字符串一个很大的不同是,字符串不可修改,但是列表可以修改。
>>> str = ['python','c++','java']
>>> str[0] = 'c#'
>>> str
['c#', 'c++', 'java']
>>> name = 'rocky'
>>> name[0] = 'R'
Traceback (most recent call last):
File "", line 1, in
TypeError: 'str' object does not support item assignment
其次,除了可以修改元素以外,列表还可以继续给自己添加元素,但是不是说列表随便可以给自己加戏,必须要用 append() 方法向列表中追加元素,追加到末尾。
>>> str = ['python','c++','java']
>>> str[3] = 'c#'
Traceback (most recent call last):
File "", line 1, in
IndexError: list assignment index out of range
>>> str.append('c#')
>>> str
['python', 'c++', 'java', 'c#']
常用列表函数
作为 Python 中出了名的苦哈哈,它必然有很多的函数去实现功能,感兴趣的朋友们可以用 dir(list) 查看,我在这里主要说一下那些经常用到的。
1.append:这个其实我们在昨天的文章 ( 零基础学习 Python 之列表 ( 一 ) )中说过,它执行的结果就是将某个元素加入到一个一直列表的最右边。
>>> str = [1,2,3,4,5]
>>> str.append(6)
>>> str
[1, 2, 3, 4, 5, 6]
2.extend:官方的说法是从可迭代的对象那里获取元素,将它们追加到已知的列表中,从而达到扩充的目的,其实就是能够将两个列表合并。
>>> str = [1,2,3,4,5]
>>> str1 = ['abc','def']
>>> str.extend(str1)
>>> str
[1, 2, 3, 4, 5, 'abc', 'def']
3.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
4.index:该函数能够查到你想查的函数在列表中第一次出现的位置,比起之前的文章我们说的索引,这个才是真真正正的索引。
>>> a = [1,2,3,4,'abc','def']
>>> a.index(2)
1
5.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']
6.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 "", line 1, in
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]
7.reverse:这个函数很简单,就是直接把列表的元素顺序反过来。
>>> a = [1,2,3,4,1]
>>> a.reverse()
>>> a
[1, 4, 3, 2, 1]
8.sort:这个函数是对列表进行排序,默认是递增排序,通过改变默认参数 reverse 的值可以实现递减排序。
>>> a = ['c','d','a','k']
>>> a.sort()
>>> a
['a', 'c', 'd', 'k']
>>> a.sort(reverse = True)
>>> a
['k', 'd', 'c', 'a']
比较列表 & 字符串
列表和字符串这两种对象类型有很多相似的地方,也有很大的区别,在这里简单比较一下,也算是对前面所学的一个复习。
相同点:
1.两者都是序列类型,都可以从左向右(从左向右),依次用 0,1,2...(-1,-2,-3...)表示,通过这样的方式建立索引,同样可以用切片的方法得到 一个或多个元素。
2.对于序列的基本操作来说,二者都适用,比如连接操作等,还有像 len() 这一类的函数也都是适用的。
不同点:
1.字符串和列表的最大区别就是:列表的可变的,但是字符串是不可变的。我们在上面讲到的列表函数,诸如 append(),insert(),pop() 等对字符串来说都是不适用的。
2.元素的包裹性,这是我自己想的一个词,可能不太贴切。字符串里的每个元素都只是字符,而列表里的元素可以是其它任何的诸如数字,字符串,列表等对象类型。
到这里,列表差不多就写完了,列表虽然是苦哈哈,但先让它做这些事情把,显得我们比较仁义点。。
python学什么教学_python零基础教学之列表教学相关推荐
- 学python数据挖掘自学路线图_python零基础学习路线图
知了堂前面的文章已经介绍了Python是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum于1989年底发明.由于他简单.易学.免费开源.可移植性.可扩展性等特点,让Pytho ...
- python 二进制流转图片_Python零基础入门到精通-5.1节:Python程序的执行过程
教程引言: 系统地讲解计算机基础知识,Python的基础知识, 高级知识,web开发框架,爬虫开发,数据结构与算法,nginx, 系统架构.一步步地帮助你从入门到就业. 5.1.1 在命令行中执行Py ...
- python学精通要多久-零基础零经验自学Python,到精通Python要多久啊?
如今随着人工智能和大数据技术的兴起和快速发展,Python语言也得到了更加广泛的应用,因此,Python行业吸引了越来越多的新人想要加入其中,那么对于零基础的同学来说,Python培训班一般要学习多久 ...
- python学起来难不难-零基础学Python爬虫难不难?要怎么学?
零基础学Python爬虫难不难?要怎么学?众所周知,Python是最容易上手的编程语言,如果有一定基础,学会Python爬虫也是分分钟钟的事.对于零基础的学习者来说,Python爬虫也是比较简单的,只 ...
- python做动画视频教程_Python零基础入门动画教程
课程答疑: QQ群:913293727 适用人群 在校大学生/应届毕业生/业余编程爱好者/初.中开发学习者/大中专院校师生/数据分析人员/技术支持/测试人员 课程概述--课程大纲-- 1.Python ...
- python怎么输出浮点数_python 零基础入门教程第 2 章:基本数据类型 (一)
一.什么是数据类型 编程语言通过一些复杂的计算机物理底层机制,创造不同类型的数据,用来表示现实世界中的不同信息,以便于计算机更好的存储和计算. 每种编程语言都会有一些基本的数据类型用来表示现实世界中的 ...
- python 类和对象_Python零基础入门学习33:类与面向对象编程:类的继承
注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性. 本文字数约1300,阅读时间约为3分钟. Python面向对象编程 类的继承机制 如果一个类A继承自另一个类B,就把继承者类A称 ...
- python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python
教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...
- c# 字典排序_Python零基础入门之列表与字典
本篇内容需结合源码,获取方法看末尾 数据结构 数据结构就是指从计算机存储.组织数据的结构 列表(List) 元组(Tuple) 字典(Dictionary) 集合(Set) 列表(List) 列表中的 ...
最新文章
- matlab 电磁兼容仿真软件,EMC Studio免费版
- ajax原理及其优缺点
- Flutter Raw Image Provider
- php评星,jQuery+PHP星级评分实现方法
- cv mat的shape_pybind11—opencv图像处理(numpy数据交换)
- mysql数据库操作类
- Kafka性能测试实例
- poj 1226 Substrings kmp 好题,我调试了一晚上啊!!汗
- Front: 电子邮件通讯创业新模式
- 优酷KUX格式视频如何快速转换MP4格式
- C语言求阶乘尾数零的个数
- 怎么使用quicktime
- 维基百科语料库训练词向量
- 阿里飞猪搜索技术的应用与创新(v2021-02-03)
- 系统镜像ISO、GHO、WIM、ESD的区别
- cad标注样式快捷键_说说CAD尺寸精度设置的两种方法!
- big endian和little endian 的区别 ,BOOST_BIG_ENDIAN
- 网络安全关于Windows下BAT脚本使用
- 《乘风破浪》三年,靠王心凌救市?
- oss图片处理—制作海报
热门文章
- 一文弄懂二叉树的三种遍历方式
- 低年级趣味写话——绘本故事《小猪变形计》
- RuntimeError: size mismatch, m1: [512 x 12800], m2: [2048 x 1024] at C
- Processing of multipart/form-data request failed. Stream ended unexpectedly
- 极大线性无关组的定义与性质
- 27线性空间01——线性空间、线性相关、线性无关、向量组的秩与极大线性无关组的概念、基和维数
- 什么是响应式编程框架
- 创建模式、结构模式、行为模式的区别
- Python项目实战:飞机大战(一)
- C++中虚函数的作用