Python基础-list列表及常见函数

list列表是Python内置的一种数据类型,本质是一种有序的集合,这里将会讲到list的具体的一些用法以及常见的函数

创建列表

语法:列表名 = [元素1,元素2,元素3…元素n]

说明:列表中的选项被称为元素,跟string类似,下标也是从0开始计数,一个列表中的数据类型可以各不相同。

创建列表代码如下:

#创建空列表
list1 = []
#创建带有元素的列表
list2 = [10, 20, 30, 10]
print(list2)		#[10, 20, 30, 10]
list3 = [33, "good", True, 10.32]
print(list3)		#[33, 'good', True, 10.32]
列表元素的访问
列表的取值

语法:列表名[索引]

功能:访问list列表中元素值

list4 = [22, 33, 12, 32, 45]
#下标从0开始,最大值为len(list4)-1
print(list4[0])		#22

注意:当索引值大于len(list4)-1的时候,会出现以下错误:

IndexError: list index out of range

这个错误就是下标越界【下标超出了可表示的范围】

列表元素的替换

语法:列表名[下标] = 值

功能:更改列表元素的值

list4 = [22, 33, 12, 32, 45]
list4[0] = "hello"
print(list4)		#['hello', 33, 12, 32, 45]
列表的操作
列表组合

语法: list3 = list1 + list2,如下代码:

list1 = [1, 2, 3]
list2 = ['hello','yes','no']
print(list1+list2)		#[1, 2, 3, 'hello', 'yes', 'no']
列表重复

语法: list2 = list1 * n,如下代码:

list1 = [1, 2, 3]
print(list1*3)		#[1, 2, 3, 1, 2, 3, 1, 2, 3]
判断元素是否在列表中

语法:x in list1

若存在则返回True,否则返回False,如下代码:

list1 = [1, 2, 3]
print(1 in list1)	#True
列表截取

语法:list1[start:end]

表示获取从开始下标到结束下标的所有元素[start, end)。若不指定start,则默认从0开始截取,截取到指定位置;若不指定end,则从指定位置开始截取,截取到末尾结束。如下代码:

list1 = [1, 2, 3, 'hello', 'yes', 'no']
print(list1[2:4])		#[3, 'hello']
二维列表

语法:list = [list1,list2,…,listn]

创建二维列表,即列表中的元素还是列表,如下代码:

list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
二维列表取值

语法:list1[n][m]

注意:n代表list列表中第n个列表(下标从0开始),m代表list列表第n个列表中的第m个元素

list1 = [[1, 2, 3],[2, 3, 4],[5, 4, 9]]
print(list1[1][1])		#3
常见函数的使用
1. list.append(元素/列表)

功能:在列表中末尾添加新的元素【在原本的列表中追加元素】

注意:append()中的值可以是列表也可以是普通元素

list1 = [3, 4, 6]
list1.append(6)
print(list1)		#[3, 4, 6, 6]
2. list.extend(列表)

功能:在列表的末尾一次性追加另外一个列表中的多个值

注意:extend()中的值只能是列表/元组[一个可迭代对象],不能是元素

list1 = [1,2,3]
list2 = [3, 4,5]
list1.extend(list2)
print(list1)		#[1, 2, 3, 3, 4, 5]
3. list.insert(下标值, 元素/列表)

功能:在下标处插入元素,不覆盖原本的数据,原数据向后顺延

注意:插入的数据可以是元素也可以为列表

list1 = [1,2,3]
list1.insert(1,0)
print(list1)		#[1, 0, 2, 3]
list1.insert(1,[2, 4, 8])
print(list1)		#[1, [2, 4, 8], 0, 2, 3]
4. list.pop(下标值)

功能:移除列表中指定下标处的元素(默认移除最后一个元素),并返回移除的数据

list1 = [1, [2, 4, 8], 0, 2, 3]
print(list1.pop())		#3
print(list1.pop(2))		#0
print(list1)			#[1, [2, 4, 8], 2]
5. list.remove(元素)

功能:移除列表中的某个元素第一个匹配结果

list1 = [1, 2, 3]
list1.remove(2)
print(list1)		#[1, 3]
6. list.clear()

功能:清除列表中所有的数据

list1 = [1, 2, 3]
list1.clear()
print(list1)		#[]
7. list.index(object[, start][, stop])

功能:从指定的范围的列表中找出某个值第一匹配的索引值 ;若不指定范围,则默认是整个列表

list1 = [1, 2, 3]
print(list1.index(2))	#1

注意:若在列表中找不到这个元素,则会报错。如下:

list1 = [1, 2, 3]
print(list1.index(4))

ValueError: 4 is not in list
8. list.count(元素)

功能:查看元素在列表中出现的次数

list1 = [1, 2, 3, 1]
print(list1.count(1))	#2
9. len(list)

功能: 获取元素列表个数

list1 = [1, 2, 3, 1]
print(len(list1))	#4
10. max(list)

功能: 获取列表中的最大值

list1 = [1, 2, 3, 1]
print(max(list1))	#3
11. min(list)

功能:获取列表中的最小值

list1 = [1, 2, 3, 1]
print(min(list1))	#1
12. list.reverse()

功能:将列表中的元素倒叙,操作原列表,不返回新的列表

list1 = [1, 2, 3, 1]
list1.reverse()
print(list1)		#[1, 3, 2, 1]
13. list.sort(reverse=False)

功能:将list中的元素进行升序排列【默认reverse=False】,当reverse为True的时候,降序排列。

list1 = [1, 2, 3, 1]
list1.sort()
print(list1)		#[1, 1, 2, 3]
14. list(元组)

功能:将元组转为列表

list1 = list((1, 2, 3, 4))
print(list1)		#[1, 2, 3, 4]
拷贝
1. 赋值拷贝/引用拷贝

语法: list2 = list1

list1 = [1, 2, 3, 1]
list2 = list1
print(list2)		#[1, 2, 3, 1]
print(id(list1))	#43148104
print(id(list2))	#43148104

注意:赋值拷贝为引用拷贝,类似于快捷方式

2. 浅拷贝

用法:list2 = list1.copy()

list1 = [1, 2, 3, 1]
list2 = list1.copy()
print(list2)		#[1, 2, 3, 1]
print(id(list2))	#35534216
print(id(list1))	#36332360

注意:只适用于一维列表。

不完全内存拷贝,对于一维列表重新开辟了一块内存空间,但若出现二维列表的情况下,因为二维列表存放在一维列表中存放的是列表的地址,因此,若出现二维列表相当于间接的引用了同一块内存区域。

3.深拷贝

import copy
list2 = copy.deepcopy(list1)

完全内存拷贝,相当于将list1中的所有列表中元素重新复制了一份,对于多维的也重新开辟了内存空间,因此它不会出现内存共用的情况。

import copy

list1 = [1,2,3,4,[1,2,3,4]]
list2 = copy.deepcopy(list1)
list2[-1][-1] ="hello"
print(list1)		#[1, 2, 3, 4, [1, 2, 3, 4]]
print(list2)		#[1, 2, 3, 4, [1, 2, 3, 'hello']]
print(id(list1))	#43225864
print(id(list2))	#43227144
列表的遍历
使用for循环遍历列表
for x in list1
	循环体

功能:for循环主要用于遍历列表

遍历:指的是依次访问列表中的每一个元素,获取每个下标对应的元素值

说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止

list1 = ['hello', 78, '你好', 'good']
for item in list1:
    print(item,end=' ')		

#hello 78 你好 good 
使用while循环遍历列表[使用下标循环]
index = 0
while index < len(list1):
	循环体
	index += 1

具体代码如下:

list1 = ['hello', 78, '你好', 'good']
index = 0
while index < len(list1):
    print(list1[index],end=' ')  
    index += 1

#hello 78 你好 good 
同时遍历下标与元素
for index,value in enumerate(list1):
	循环体

enumerate()[枚举]函数用于一个可遍历的数据对象(如列表,元组或者字符串)组合为一个索引序列,同时列出数据与数据下标,一般使用在for循环中

enumerate(obj, [start =0])
obj:一个可迭代对象
start:下标起始位置

具体代码实现如下:

list1 = ['hello', 78, '你好', 'good']
for index,item in enumerate(list1):
    print(index, item)

运行结果如下:

0 hello
1 78
2 你好
3 good
  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值