摘要:计算列表所有元素的和,其元素类型必须是数值型的整数浮点数返回一个排序的列表,但并不改变原列表。只有列表所有元素为才返回。列表的内置方法前面我们说的是语言的内置函数,这里我们讲的是列表本身的内置方法。
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_a Out[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] = 2 In [33]: list_b Out[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的一种“内置类型”,它也像基本类型数字、字符串那样可以进行一些运算符的运算,如下表所示:
运算符 | 含义 | 表达式 | 结果 |
---|---|---|---|
+ | 列表合并在一起 | ["a", "b", "c"] + [1, 2, 3] | ["a", "b", "c", 1, 2, 3] |
* | 列表重复 | ["a"] * 3 | ["a", "a", "a"] |
in | 是否为列表元素 | "a" in ["a", "b"] | True |
从头到尾遍历(迭代)一个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_a In [37]: list_a --------------------------------------------------------------------------- NameError Traceback (most recent call last)in ----> 1 list_a NameError: 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_a Out[43]: ["b", 3, 8.9, [1, 2]] In [44]: del list_a[1:3] # 删除切片 In [45]: list_a Out[45]: ["b", [1, 2]]list(列表)推导式
处理一个序列中的所有或部分元素并返回结果列表的一种紧凑写法。见下面的例子:
In [50]: even = [2 * i for i in range(10)] In [51]: even Out[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]: even2 Out[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]: 1 In [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: "<" not supported between instances of "str" and "int"
(4)sum()
计算列表所有元素的和,其元素类型必须是数值型的(整数、浮点数)
In [63]: sum([1,2,3]) Out[63]: 6 In [64]: sum([1.2, 3.2, 4.3]) Out[64]: 8.7 In [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]: False In [74]: all([3, "a", True]) Out[74]: Truelist(列表)的内置方法
前面我们说的是Python语言的“内置函数”,这里我们讲的是列表本身的“内置方法”。函数和方法有什么区别呢?
函数: 是一系列语句的集合,调用后可以返回一个或一些值。可以给它传递0个或多个参数,这些参数可能被用于函数内部的执行过程。
方法: 就是定义在类内部的函数。很明显,方法是与某个对象关联的。方法的调用方法就是在对象后面加.再加方法名称。
Python中的一切都是对象,列表也不例外,那自然列表也有其自有的方法,总结为下表:
方法 | 功能 | 示例 | 结果 |
---|---|---|---|
append() | 把一个元素加到列表的尾部 | a=[1,2];a.append("a") | a变为 [1,2,"a"] |
insert() | 把一个元素加到列表的特定位置 | a=[1,2]; a.insert(1, "c") | a变为:[1, "c", 2] |
remove() | 删除第一个出现的某元素 | a=[1,2]; a.remove(2) | a变为:[1] |
pop() | 删除并返回某个位置(索引)的元素 | a=[1,2];a.pop(1) | a变为:[1] |
clear() | 清空列表 | a=[1,2];a.clear() | a变为:[] |
index() | 返回遇到的第一个某值的索引, | ||
如果列表不包含该值则抛出错误 | a=[1,1,1];a.index(1) | 返回0 | |
count() | 返回列表中某值的个数 | a=[1,1,2];a.count(1) | 返回2 |
sort() | 对列表进行排序 | a=[3,2,1];a.sort() | a变为:[1,2,3] |
reverse() | 将列表倒置 | a=[2,1,3];a.reverse() | a变为:[3,1,2] |
列表是Python中最常用的数据结构之一,主要用于数据的顺序存储。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/43777.html
摘要:第二个索引元素不在分片内。显示操作索引指向第个元素,第个元素不存在。序列加法乘法表示个空列表空列表用初始化成员资格运算符布尔运算符,检查值是否在序列中。修改列表,没有返回值。在原位置对列表排序。 序列 例: Edward = [abc, 12] 序列中的所有元素都是有编号的,从0开始递增。 Note: 使用负数索引-1,Python会从右边,也就是从最后一个元素开始计数。最后一个元素...
摘要:计算元组所有元素的和,其元素类型必须是数值型的整数,浮点数返回一个排序的列表,但并不改变原元组。只有元组所有元素为才返回。 元组(元组)跟列表(名单)非常相似,二者之间的差异就是元组不可改变,列表是可以改变的。 showImg(https://segmentfault.com/img/remote/1460000019153442); 创建元组(元组) 跟列表的中括号不同,元组用圆括号...
摘要:字典的创建字典可以通过或一对花括号创建一个空字典。方法是字典对象名称加方括号括起来的键名,比如。空字典的长度是和类似于对列表的操作,不过这两个函数检验的是字典的键。修改了字典并没有重新获取,但是已经反应了变化,多了返回值的对象,。 字典(dict, dictionary的简写)是Python中另一个非常重要的内置数据类型,是Python中映射类型(Mapping Type),它把键(k...
摘要:布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有两种值的数据类型可以通过内置的函数查询,例如还可以用来判断和的区别在于不会认为子类是一种父类类型。会认为子类是一种父类类型。基本功能是进行成员关系测试和删除重复元素。 ...
摘要:引入需要的模块,配置图片路径,设置界面宽高背景颜色,创建游戏主入口。 1.引入需要的模块,配置图片路径,设置界面宽高背景颜色,创建游戏主入口。 showImg(https://segmentfault.com/img/bVbuYZU?w=662&h=357); #1引入需要的模块 import pygame import random #1配置图片地址 IMAGE_PATH = img...
阅读 2289·2021-11-24 10:18
阅读 2720·2021-11-19 09:59
阅读 1711·2019-08-30 15:53
阅读 1186·2019-08-30 15:53
阅读 1069·2019-08-30 14:19
阅读 2481·2019-08-30 13:14
阅读 3003·2019-08-30 13:00
阅读 1937·2019-08-30 11:11