我们在C语言中使用数组将很多相同数据类型的数据放在一起,但是数组有一个基本的要求,那就是数据类型必须一致。我们知道Python变量没有数据。类型,也就是说Python没有数组的概念,但是Python引入了更强大的列表。
基本概念
列表是Python中内置的变量序列,是元素的有序集合;
列表中的每个数据称为一个元素。列表的所有元素都放在一对方括号“[”和“]”中,并用逗号分隔;
列表元素可以通过索引访问各个元素。
在Python中,同一个列表中的元素的数据类型可以不同。它们可以包含基本类型的元素,例如整数、实数和字符串,以及列表、元组、字典、集合、函数等。任何物体。
Python采用基于值的自动内存管理模式。变量并不直接存储值,而是存储值的引用或内存地址。这也是Python中变量可以随时改变类型的重要原因。同样,Python列表中的元素也是对值的引用,因此列表中的每个元素可以是不同类型的数据。
如果只有一对方括号,没有任何元素,则代表一个空列表。
列表大小没有限制,可以随时修改。当从列表中添加或删除元素时,列表对象会自动扩展或收缩其内存,以确保相邻元素之间没有间隙。 Python列表的这种自动内存管理功能可以大大减轻程序员的负担,但是插入和删除非尾元素涉及到移动列表中的大量元素,这会严重影响效率。
访问列表中的元素时使用索引形式。在非尾部位置插入和删除元素会改变列表中该位置后面元素的索引,这可能会导致某些操作出现意外的错误结果。除非绝对必要,否则您应该尝试在列表末尾添加和删除元素。
创建和删除
1。与其他类型的Python对象变量一样,使用“=”直接将列表赋值给变量来创建列表对象。例如:
a_list = []
2。您还可以使用 list() 函数将元组、范围对象、字符串或其他类型的可迭代对象类型数据转换为列表。例如:
list(range(1, 10, 2)) #将range对象转换为list
list('hello world') #将字符串转换为列表
list({3,7,5}) #将集合转换为列表
list({'a':3, 'b':9, 'c':78}) #将字典的“键”转换成列表
list({'a':3, 'b':9, 'c':78}.items())#转换字典的“key:value”
3。当不再使用时,使用 del 命令删除整个列表。如果列表对象所指向的值不再被其他对象所指向,Python会同时删除该值。例如:
del x #删除列表对象
x #对象删除后无法再访问,抛出异常
NameError:名称“x”未定义
列表理解
1。列表推导可以说是Python程序开发中最常用的技术之一。
使用方括号 [ ] 作为开始和结束标记。
[集合 ifcondition 中的值的表达式]
列表理解使用非常简洁的方式快速生成满足特定需求的列表,并且代码的可读性很强。
相当于
对于范围 (10) 内的 x:
aList.append(x*x)
2。不符合条件的滤芯
[i for i in aList if i>0]
[6, 7.5, 9]
在列表推导式中使用多个循环来实现多序列元素的任意组合,并且可以组合条件语句来过滤特定元素
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1 ), (2, 2)]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
列表操作
1.列表上有一些基本的操作,和字符串操作类似
2。列出常用方法
1)append()、insert()、extend()append()用于将元素追加到列表末尾,insert()用于将元素插入到列表中的任意指定位置, extend() 用于将另一个元素添加到列表末尾。列表中的所有元素都将追加到当前列表的末尾。这三个方法都是就地操作,不影响列表对象在内存中的起始地址。 2) pop(),remove(),clear() pop()用于删除并返回指定位置的元素(默认最后); remove()用于删除列表中第一个等于指定value元素的元素; clear() 用于清除列表中的所有元素。全部都是就地操作。还可以使用 del 命令删除列表中指定位置的元素,这也是就地操作。 3) count(),index() count()用于返回指定元素在列表中出现的次数; index() 用于返回指定元素在列表中首次出现的位置,如果该元素不在列表中则抛出异常。 4) 排序(), 反向() sort()方法用于对所有元素按照指定的规则进行排序; reverse() 方法用于反转或翻转列表中的所有元素。
顺序操作常用的内置函数
字符串拆分列表 对于字符串,可以使用 split() 函数将字符串拆分为列表。默认是用空格分割。例如:
-->
发表评论
(已有0条评论)
>>> id(x) #查看对象的内存地址
50159368
>>> x.append(4) #在最后追加元素
>>> x.insert(0, 0) #在指定位置插入元素
>>> x.extend([5, 6, 7]) #在末尾追加多个元素
>>> x
[0, 1, 2, 3, 4, 5, 6, 7]
>>> id(x) #链表在内存中的地址不变
50159368
>>> x.pop() #弹出并返回尾部元素
>>> x.pop(0) #弹出并返回指定位置的元素
>>> x.clear() #删除所有元素
>>> x
[]
>>> x = [1, 2, 1, 1, 2]
>>> x.remove(2) #删除第一个值为2的元素
>>> del x[3] #删除指定位置的元素
>>> x.count(3) #元素3在列表x中出现的次数
3
>>> x.count(5) #不存在,返回0
0
>>> x.index(2) #元素2在列表x中第一次出现的索引
1
>>> x.index(5) #列表x中没有5,抛出异常
ValueError: 5 不在列表中
>>> 随机导入
>>> random.shuffle(x) #随机打乱列表x中的元素
>>> x
[6,0,1,7,4,3,2,8,5,10,9]
>>> x.sort(key=lambda item:len(str(item)), reverse=True) #按照转换为字符串后的长度降序排列
>>> x
[10,6,0,1,7,4,3,2,8,5,9]
>>>
>>> x.reverse() #翻转列表
还木有评论哦,快来抢沙发吧~