Hello,这一期我们把Python的三个常用的基础数据结构之一的List讲一下(具体来说应该是四个,set也算一个),把数据结构讲完后,下期就开始讲控制语句了,有了控制语句,基本的逻辑代码就可以敲起来了。
注:小编所介绍到的知识都是Python3.0的版本。
List列表
List属于Python的6个基本序列之一,它有着序列的通用特性,包括索引,切片,加法,乘法,长度,检查成员等。list数据结构基本标志是'[ ]',它的成员都是在中括号里面的,例如:
list1=['java','python','C++','typescript','HTML']
这边是一个列表,列表里面的元素可以由各种元素组成,数字,字符串,列表等。他们可以混合存在,就是说,一个列表里面可以同时存在列表,字符串和数字。他们之间互不影响。例如:
list2=[list1,'helloworld',25.55,[1,2,3]]
执行输出:print (list2)
PS D:\johnturingwu> python D:\johnturingwu\test.py
[['java', 'python', 'C++', 'typescript', 'HTML'], 'helloworld', 25.55, [1, 2, 3]]
从这里我们也可以看出,列表其实就相当于一个仓库,它里面能存放好多数据,所以一般遇到定义多个数据的时候,我们就可以通过一个list来解决问题。
1、访问列表中的值
我们刚学会了定义一个list,现在我们要从list中把需要的值取出来该怎么取呢?
很简单,通过下标取值即可。
在list中,每个元素都有自己的下标,他们从前至后是有序的,从0开始计数,到最后一个结束,一般取下标的时候我们需要用中括号括起来,就像这样:list1[0],list1[1],list1[2].....
当然,除了这样计数,我们还有另一种计数方法,倒过来计数:从后至前数,最后一个也就是倒数第一个,它的下标是-1,依次往前数,就像这样:list1[-1],list[-2],list[-3].....
测试:
print (list1[0],list1[-1])
输出:java HTML
以上便是通过下标访问单个元素的方式。
那么问题来了,要是我们需要回去大量连续的元素数据,那应该怎么办?
难道还需要list[1],list[2],list[3]....这样一直写下去吗?
答案当然不是的,我们可以通过切片来获取元素。如何进行切片呢?下面小编就来介绍一下。
切片,顾名思义,就是从整个list中选择某一个区间的元素,我们是通过在中括号中加第二个参数,来完成切片的。两个数字之间" : "进行连接,例子如下:
list1[0:3]
这就是对list1进行切片,获取前3个元素的值。(第一个元素的下标为0),来看一下例子的输出结果:
list1=['java','python','C++','typescript','HTML']
print(list1[0:3])
输出:
['java', 'python', 'C++']
有同学开始问了:这里不是截取了0-3四个元素吗,结果应该是四个啊?怎么输出只有三个?
这里小编要讲一下,使用切片时有一点要注意:切片的两个参数,是第一个参数的值可以取的到,但第二个参数的值就取不到了,用数学用来说就是左闭右开区间【数学表示法 [0,3)】,能取的到0(第一个元素),取不到3(第四个元素)。
那有的同学又开始问了:切片时候选的数字能不能倒过来数,从-1开始往前数?
答案当然是可以的。你觉得怎么方便怎么来,但是有一点要注意一下,次序不能乱,要注意下标的顺序,我们来举个具体的例子:
print(list1[-1:-3])
输出:
[]
print(list1[-3:-1])
输出:
['C++', 'typescript']
从中我们我们看出,如果截取的次序颠倒,我们就拿不到我们想要的值,只能得到一个空列表。 这里我们也看到了,最后一个值没有被取到。那有什么方法能娶到最后一个值呢,答案有两个:
list[-3:5] 第二个参数的值取列表最后一个元素的下标
list[-3:] 冒号后面省略不写,系统默认取到最后一个元素
2、更新列表中的值
刚刚我们学会了访问列表中的值,那列表中的值我们怎么去修改呢?
很简单,指定你想修改元素的下标,在给它赋值即可,我们可以看看这个例子:
list1=['java','python','C++','typescript','HTML']
list1[0]='PHP' #第一个元素换成PHP
print(list1)
输出:
['PHP', 'python', 'C++', 'typescript', 'HTML']
list1=['java','python','C++','typescript','HTML']
list1[0:3]=['Python'] #把前三个元素用Python代替
print(list1)
输出:
['Python', 'typescript', 'HTML']
3、删除列表中的值
列表中的值可以通过del语句进行删除
del list1[2]
输出:
['java', 'python', 'typescript', 'HTML']
del也可以删除整个list
del list1
此时整个list1都被删除了
再次打印list1会报错:
Traceback (most recent call last):
File "C:\Users\yuqing.wu\Desktop\qaaa\test.py", line 3, in <module>
print(list1)
NameError: name 'list1' is not defined
4、list的函数
关于list,有一些自己的函数,这边我们介绍四个常用的函数:
a.len()函数:返回列表的长度
len(list1)
输出:
_> 5
b.max()函数:返回列表中的最大值(按asc码大小排序)
max(list1)
输出:
typescript
c.min()函数:返回列表中的最小值
min(list1)
输出:
_> C++
d.list()函数:将一个其他序列转化list
string="hello"
print(list(string))
输出:
_> ['h', 'e', 'l', 'l', 'o']
5、list的方法
list有很多自己的内置方法,这边我们来看看一些常用的方法。
用来在列表中添加对象的
list1=['java','python','C++','typescript','HTML']
a='php'
list1.append(a)
print(list1)
_> ['java', 'python', 'C++', 'typescript', 'HTML', 'php']
用来统计某个元素在列表中出现的次数
list2=[1,2,4,5,6,3,2,1,2,1,5,1,2,1,2,1,3]
print(list2.count(1))
输出:
_> 6
代表元素1出现了6次
在列表中添加新的列表中的元素,参数传入的是一个序列
list1=['java','python','C++','typescript','HTML']
list2=['PHP','R','Ruby','swfit']
list1.extend(list2)
print(list1)
输出:
_> ['java', 'python', 'C++', 'typescript', 'HTML', 'PHP', 'R', 'Ruby', 'swfit']
如果这里用append方法,它则是将list2嵌套在list1中:
list1.append(list2)
print(list1)
输出:
_> ['java', 'python', 'C++', 'typescript', 'HTML', ['PHP', 'R', 'Ruby', 'swfit']]
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list1=['java','python','C++','typescript','HTML']
print(list1.pop())
print(list1)
输出:
_> HTML
['java', 'python', 'C++', 'typescript']
用来请空列表
list1=['java','python','C++','typescript','HTML']
list1.clear()
print(list1)
输出:
_> []
将列表中的元素倒过来排
list1=['java','python','C++','typescript','HTML']
list1.reverse()
print(list1)
输出:
_> ['HTML', 'typescript', 'C++', 'python', 'java']
对列表进行排序,按照asc码排列的顺序
list1=['java','python','C++','typescript','HTML']
list2=[1,2,4,5,6,3,2,1,2,1,5,1,11,3]
list1.sort()
list2.sort()
print(list1)
print(list2)
输出:
_> ['C++', 'HTML', 'java', 'python', 'typescript']
[1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 11]
今天关于列表的知识就讲到这里了。
下期再见。
相关推荐
pycharm的简单安装和使用,以及python项目的创建,while循环,格式化输出,运算符,编码的简单介绍
《Python基础教程第二版》是针对初学者的一本经典教材,尤其适合那些对Python 2.0版本感兴趣的读者。本书全面、深入地介绍了Python编程语言的基础概念和语法,旨在帮助读者掌握这一强大而灵活的编程工具。以下是根据...
《Python基础教程(第2版)》是一本全面介绍Python编程的指南,适合初学者入门。Python作为一种解释型、面向对象、动态数据类型的高级程序设计语言,因其简洁的语法和强大的功能而广受欢迎。该书分为基础篇和高级篇...
python 基础教程 第二版 高清 书签 中文: 本书包括Python程序设计的方方面面,首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句。然后循序渐进地介绍了...
python 基础教程第二版修订版,是修订版。高清,有书签,由于太大分为两次上传,把两个压缩包一起解压
Python基础入门教程 Python语言编程导论 Python应用案例二 (共24页).ppt Python基础入门教程 Python语言编程导论 SciPy扩展库简介 (共53页).ppt Python基础入门教程 Python语言编程导论 算法评价 (共29页).ppt...
python基础教程第二版修订版,压缩包第二部分,可以直接百度云下载链接:http://pan.baidu.com/s/1mhGXiqO 密码:pjsj
"Python基础教程第二版"是学习Python语言的经典教材,由专家编写,旨在为初学者提供全面而深入的Python知识。这本书包含了Python的基础概念、语法结构、数据类型、控制结构、函数、模块和包、面向对象编程以及错误...
《Python基础教程(第2版)》是一本全面覆盖Python编程基础知识的经典教程,适用于不同层次的Python开发者。这本书经过了全面的更新,适应了Python语言的最新变化,无论是初学者还是经验丰富的程序员都能从中受益。 ...
Python基础教程第二部分,文件大,分成了两个部分上传。
"Python基础教程配套源码"是一份旨在帮助初学者深入理解Python编程原理和实践的资源。这个压缩包可能包含了与Python基础教程相关的各种示例代码、练习和项目,帮助学习者通过实际操作来巩固理论知识。 在Python的...
Python基础入门教程 Python语言编程导论 Python应用案例二 (共24页).ppt Python基础入门教程 Python语言编程导论 SciPy扩展库简介 (共53页).ppt Python基础入门教程 Python语言编程导论 算法评价 (共29页).ppt...
本书《Python基础教程 第二版》是学习Python编程的绝佳资源,高清PDF格式使得阅读体验更佳,适合初学者以及希望巩固Python基础知识的开发者。 在Python的基础教程中,通常会涵盖以下几个核心知识点: 1. **Python...
《Python基础》课程标准详细规划了64课时的教学内容,旨在为计算机应用、软件技术、大数据技术与应用以及云计算技术与应用专业的学生提供坚实的Python编程基础。这是一门核心的职业基础课程,拥有课程代码******,...
《Python基础教程》是Martin Hetland所著的一本经典教材,第二版更是对初学者和有一定经验的开发者提供了深入浅出的Python知识讲解。 在这一版的源代码中,读者可以找到书中各章节实例的实现,这对于理解Python编程...
这篇文档提供了100个Python基础训练题,旨在帮助学习者巩固Python3的基本语法和概念。这些实例覆盖了Python中的多种核心概念,包括数字操作、字符串处理、循环、条件判断、函数、类、模块以及一些进阶特性。 例如,...
总之,"Python基础教程第二版"将引导你一步步走进Python的世界,无论你是零基础的编程新手还是希望扩展技能的开发者,都能从中受益。通过深入学习和实践,你将能够熟练运用Python解决各种问题,开启你的编程之旅。
《Python基础教程(第2版 修订版)》是一本深入浅出的Python编程入门书籍,旨在引导初学者全面掌握Python语言的核心概念和技术。这本书详细介绍了Python程序设计的各种要素,涵盖了从基本语法到高级特性,旨在帮助读者...
《Python基础教程(第二版)》是一本深受Python初学者喜爱的经典教材,它以其清晰的讲解和丰富的示例引领读者逐步掌握Python编程的基础知识。源代码.zip文件包含了本书中的所有实例代码,是学习过程中不可或缺的参考...