Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据。在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Python list(列表)。数据结构就是一些数据组合得到的“复合”数据类型。

Python内置的数据结构有:

  • 列表(list)
  • 元组(tuple)
  • 字典(dict)
  • 集合(set)

在Python语言中,以上4种数据结构和基础数据类型(整数、浮点数等)统称为“内置类型”(Built-in Types)。

Python list(列表)

Python list(列表),是Python中最常用的一种数据结构,它是一组用方括号括起来、逗号分隔的数据。列表的元素可以是任何类型的,但使用时通常各个元素的类型是相同的。下面的列表有5个元素,元素类型分别是字符串、整数、浮点数和列表:

In [15]: list_a = ['a', 'b', 3, 8.9, [1,2]]In [16]: list_aOut[16]: ['a', 'b', 3, 8.9, [1, 2]]

list(列表)的索引(index)

列表就像一个叫号排队的队伍,从头到尾每个元素都有一个递增的号码,这个号码就是对应元素的“索引”(index)。与我们生活中不同的是,列表的第一元素的索引是0。

In [22]: list_a[0]Out[22]: 'a'In [23]: list_a[1]Out[23]: 'b'In [24]: list_a[3]Out[24]: 8.9

列表这个队伍也可以从队尾往前叫号,也就是倒序叫号,这时候索引都是负的(负索引),队尾元素的索引s是-1,倒数第二个是-2,依次向前递减。

In [25]: list_a[-1]Out[25]: [1, 2]In [26]: list_a[-2]Out[26]: 8.9

Python列表的索引可以是正索引(从头到尾),也可以是负索引(从尾到头),总结为下面的关系:

列表: ['a', 'b', 'c', 'd', 'e'] | | | | |正索引: 0 1 2 3 4负索引: -5 -4 -3 -2 -1

通过索引我们可以访问到某个元素,那么我们就可以修改这个元素。没错,列表里面的元素是可以被修改的,相当于你先替别人排了个队,他来了就把你替换了。

In [31]: list_b = ['a', 'b', 'c']In [32]: list_b[1] = 2In [33]: list_bOut[33]: ['a', 2, 'c']

list(列表)的切片(slicing)

通过索引,我们可以访问list(列表)的单个元素。但有时候我们要取列表的一个片段,这就是“切片”操作。切片返回的是一个列表,可以理解为“子列表”。

切片是通过索引来实现的,比如: list_a[1:3],这里索引变成两个用冒号:分隔,分别是切片的开始索引和结束索引,[1:3]代表的是一个左开右闭区间,即包含左边索引的元素,到右边索引为止但不包括该元素。那么list_a[1:3]得到的是['b', 3]:

In [27]: list_a[1:3]Out[27]: ['b', 3]In [28]: list_a[:3]Out[28]: ['a', 'b', 3]In [29]: list_a[1:]Out[29]: ['b', 3, 8.9, [1, 2]]In [30]: list_a[:]Out[30]: ['a', 'b', 3, 8.9, [1, 2]]

上面例子中,切片范围的起止索引可以是缺失的,左边缺失就是从头(0)开始,右边缺失就是后面的全部。

list运算符

列表作为Python的一种“内置类型”,它也像基本类型数字、字符串那样可以进行一些运算符的运算,如下表所示:

从头到尾遍历(迭代)一个list的语法是:for x in list:

for x in [1, 2, 3]: print(x)

删除list(列表)

(1)删除整个列表

In [35]: list_a = ['a', 'b', 3, 8.9, [1,2]]In [36]: del list_aIn [37]: list_a---------------------------------------------------------------------------NameError Traceback (most recent call last) in ----> 1 list_aNameError: name 'list_a' is not defined

del是Python的一个保留关键字,用于删除(delete)对象。Python里面的所有东西都是对象,所有del可以用于删除变量、列表等等。

(2)删除列表的一个或多个元素

In [41]: list_a = ['a', 'b', 3, 8.9, [1,2]]In [42]: del list_a[0] # 删除一个元素In [43]: list_aOut[43]: ['b', 3, 8.9, [1, 2]]In [44]: del list_a[1:3] # 删除切片In [45]: list_aOut[45]: ['b', [1, 2]]

list(列表)推导式

处理一个序列中的所有或部分元素并返回结果列表的一种紧凑写法。见下面的例子:

In [50]: even = [2 * i for i in range(10)]In [51]: evenOut[51]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]In [52]: even2 = [i for i in range(20) if i % 2 == 0]In [53]: even2Out[53]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

生成even的过程是把0~10之间的数字都乘以2变成偶数;

生成even2的过程是从0~20之间挑选出偶数。

这两个都是列表推导式,并且后面的是加了if条件只处理原列表的部分元素。

list(列表)相关的内置函数

Python内置函数中有一些可以对list进行操作,它们是:

(1)len()

计算列表的长度,即计算列表元素的个数)

In [55]: len([1,2,3])Out[55]: 3

(2)max()

返回列表元素中的最大值,列表元素必须是同一类型且可比较,比如都是数字型的,或都是字符串,如果类型不统一就会报错:

In [57]: max(['a', 'b', 'c'])Out[57]: 'c'In [58]: max([1,2,'a'])---------------------------------------------------------------------------TypeError Traceback (most recent call last) in ----> 1 max([1,2,'a'])TypeError: '>' not supported between instances of 'str' and 'int'

(3)min()

返回列表元素中的最小值。元素类型要求跟max()一样。

In [59]: min([1,2,3])Out[59]: 1In [60]: min(['a', 'b', 'c'])Out[60]: 'a'In [61]: min([1,2,'a'])---------------------------------------------------------------------------TypeError Traceback (most recent call last) in ----> 1 min([1,2,'a'])TypeError: '

(4)sum()

计算列表所有元素的和,其元素类型必须是数值型的(整数、浮点数)

In [63]: sum([1,2,3])Out[63]: 6In [64]: sum([1.2, 3.2, 4.3])Out[64]: 8.7In [65]: sum(['a', 'b', 'c'])---------------------------------------------------------------------------TypeError Traceback (most recent call last) in ----> 1 sum(['a', 'b', 'c'])TypeError: unsupported operand type(s) for +: 'int' and 'str'

(5)sorted()

返回一个排序的列表,但并不改变原列表。

In [66]: sorted([3, 9, 0, 5])Out[66]: [0, 3, 5, 9]In [68]: sorted(['python', 'yuanrenxue', 'good'])Out[68]: ['good', 'python', 'yuanrenxue']

(6)list()

生成一个空列表,或把其它类型数据转换成list。

In [69]: list()Out[69]: []In [70]: list('python')Out[70]: ['p', 'y', 't', 'h', 'o', 'n']

(7)any()

只要列表中有一个元素是True就返回True。

In [72]: any([0, '', '3'])Out[72]: True

(8)all()

只有列表所有元素为True才返回True。

In [73]: all([0, '', '3'])Out[73]: FalseIn [74]: all([3, 'a', True])Out[74]: True

list(列表)的内置方法

前面我们说的是Python语言的“内置函数”,这里我们讲的是列表本身的“内置方法”。函数和方法有什么区别呢?

函数: 是一系列语句的集合,调用后可以返回一个或一些值。可以给它传递0个或多个参数,这些参数可能被用于函数内部的执行过程。方法: 就是定义在类内部的函数。很明显,方法是与某个对象关联的。方法的调用方法就是在对象后面加.再加方法名称。

Python中的一切都是对象,列表也不例外,那自然列表也有其自有的方法,总结为下表:

Python list(列表)总结

列表是Python中最常用的数据结构之一,主要用于数据的顺序存储。

练习

熟悉对列表的各种操作。比较列表和字符串的相似之处。

list选取多个元素 python_python基础篇:list列表的操作大盘点相关推荐

  1. Bootstrap框架(基础篇)之列表,表格,表单

    继续上篇的基础部分延伸,主要说一下列表,表格,表单相关Bootstrap框架变化以及基础知识. 1.列表篇 除了HTML提供的三种基本列表样式: 无序列表 <ul><li>-& ...

  2. list删除某个元素_Python基础入门之列表(list)

    列表概述:列表(list)内可以同时存放多种不同类型的元素,如整数.小数.字符串.甚至是一个列表.操作较灵活. 1.列表的创建 x = ['Monday', 'Tuesday', 'Wednesday ...

  3. python将一个列表里面的某类元素取出来_03|Python列表常见操作

    欢迎关注pythoner派微信公众号及头条号 Python常见的数据结构我们在上一节中已经讲过 再阅读文章前,请打开PythonIDE 列表: 1.定义一个列表 现在我们有3瓶不同类型的啤酒,现在我们 ...

  4. python嵌套列表操作_python基础(list列表的操作,公共方法,列表嵌套,元祖)...

    list 列表 索引,切片与str相同. 列表的操作(增删改查) 1,增加 .append() 追加,增加到最后 li = ['alex','wusir','egon','女神','taibai'] ...

  5. html判断是否有某个元素,JS基础篇--如何用JavaScript判断dom是否有存在某class的值?...

    例如: 判断html节点的class是否有no-js. 1.jquery的实现方式 $("html").hasClass('no-js'); jquery源码的实现方式: var ...

  6. python print rdd_【Spark机器学习速成宝典】基础篇02RDD常见的操作(Python版)

    #-*-coding=utf-8 -*- from pyspark importSparkConf, SparkContext sc= SparkContext('local')#map(func): ...

  7. python解包操作_python基础篇笔记02 文件操作 序列解包**星号语法

    文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件, 都是模拟出来的效果,具体的说有两种实现方式: 方式一:将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修 ...

  8. Oracle 基础篇 --- 表空间的操作

    2019独角兽企业重金招聘Python工程师标准>>> ###更改表空间 ####1 重命名表空间 将表空间 /home/oracle/app/oracle/product/11.2 ...

  9. IOS-—UICollectionView使用综述(一 )(基础篇--垂直列表方式,横向相册方式)

    人生活在世上只有短短的几十年,却浪费了很多的时间去想许多半年内就会被遗忘的小事.实际上,世界上有的伤心事都是由一些小事引起的,诸如一点小小的伤害.一丝小小的屈辱等等.有意思的是,那些在图书馆.实验室从 ...

最新文章

  1. nginx telnet sshd
  2. 十八、深入Java 访问修饰符和非访问修饰符
  3. 双主双从(2m-2s)集群介绍和工作流程说明
  4. python判断题题库大数据技术_智慧树_大数据分析的python基础_搜题公众号
  5. mongodb可视化工具 linux,Linux中安装启动MongoDB与可视化工具
  6. python request对四类参数的处理_如何处理Djang中同一参数具有多个变量的request.GET...
  7. 33. 高精度练习之乘法
  8. Vue中computed、methods和watch之间的区别
  9. Smart ORM v0.4.1开发计划
  10. 《学习之道》第六章补充
  11. memcache、redis
  12. import requests
  13. Attention-guided Context Feature Pyramid Network for Object Detection
  14. JS Turbo空气悬浮鼓风机
  15. authenticated users: 权限介绍
  16. 「技术架构」10个提升应用程序性能的倚天剑和屠龙刀
  17. mysql 日期减10分钟_获取当前时间减去10分钟的话SQL语句怎么写
  18. 用图带你了解大数据框架架构之DophinScheduler
  19. 全网最实用的 IDEA Debug 调试技巧(超详细案例)
  20. KeeFarce工具抓取Keepass密码攻击复现及其行为监测

热门文章

  1. X++中对字符串进行操作的函数
  2. 移动互联网和Android给你带来的机会[轉]
  3. [转] left join/right join/inner join操作演示
  4. linux修改ip dhcp,Linux下在静态IP与动态DHCP之间切换的脚本
  5. adam算法效果差原因_信电学院本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...
  6. html自动生成工具_「写论文神器」一个好用的论文自动生成工具,内含30w 文献数据...
  7. 判断release模式_AbstractQueuedSynchronizer共享模式与基于Condition的等待/通知
  8. char添加一个字符_LINUX字符设备驱动模型分析(起始篇)
  9. 这组三八妇女节海报素材psd模板,你给打几分?
  10. springboot项目实例_Springboot项目的接口防刷的实例