Python之list列表浅析

在使用python中,由于需要用到数组,但是在Python中没有专门的数组来应对,方法是一可以使用numpy包来进行相关的数组表示,方法二可以使用列表来表示数组,也因此,在这里写下自己使用列表表示数组的浅浅理解。

python中的list

python中的list更多的可以形容成一个仓库,元素与元素之间使用逗号隔开,且使用中括号表示元素内容[ ],在仓库中,元素与元素之间可以有不同的类型,例如list,字典,数字,字符串等诸多类型。即

["zhangsan",5,1.5,[1,2,3],{"1":10,"2":30}]

一般状态下,推荐list依然存储同一类型元素。

list的创建

list的创建可以有两种,一种是直接实例化,即直接赋元素,例如

listA=[1,2,3,4]

也可以创建空列表

listA=[]

一种是直接采用函数创建,即list(),可以将其他类型转换到列表中

str1="zhangsanlisi"

listB=list(str1)

代码示例:

#字典转列表,保留的是key值
dict1={"a":1,"b":3,"c":5}
list1=list(dict1)
print(list1)
#元组转换成列表
tup1=(10,20,30)
list2=list(tup1)
print(list2)
#字符串转换为列表
str1="zhangsan"
list3=list(str1)
print(list3)
#区间转换成列表
rang1=range(1,5)
list4=list(rang1)
print(list4)
#创建空列表
list5=list()
print(list5)

结果:

['a', 'b', 'c']
[10, 20, 30]
['z', 'h', 'a', 'n', 'g', 's', 'a', 'n']
[1, 2, 3, 4]
[]

list元素访问

list的元素访问和其他语言相类似,直接通过索引即可,例如索引是i

访问list[i]即可,也有不同的地方是在python中索引可以为负数,也就是从列表的末尾往前获取,且是末尾索引为-1,如果是正向的,即索引开始为0.同时可以使用Python独有的切片功能,可以获取一个新的列表。

代码示例:

listD=list("zhangsan")
#正向索引从0开始
print(listD[0])
#负向索引从-1开始
print(listD[-1])
#切片 [start:end:step] 开始的索引,结束的索引,步长
listE=listD[::]
print(listE)

结果:

z
n
['z', 'h', 'a', 'n', 'g', 's', 'a', 'n']

list元素添加

list添加新的元素内容时,可以使用append,

代码示例:

listF=[1,2,3]
listF.append(10)
print(listF)

结果:

[1, 2, 3, 10]

list列表获取长度

list列表长度的确定,使用len()函数

代码示例:

listA=[1,2,3,4,5,6]
print(len(listA))
listB=[]  #空列表
print(listB)

结果:

6
0

list列表的删除释放

创建的list,如果不再使用,可以使用del进行删除,Python自带垃圾回收机制,不进行手动删除,如果没有再调用,python也会自动回收。

示例代码:

listA=[1,2,3,4]
del listA
print(listA)   #删除释放后,再度访问会报错,不存在该列表

结果:

NameError: name 'listA' is not defined.
Python中,可以使用copy模块中的deepcopy方法来实现列表的深拷贝。深拷贝创建一个完全独立的列表副本,无论多少层嵌套,得到的新列表都是和原来无关的。可以通过引入copy模块,并使用copy.deepcopy()来进行深拷贝操作。例如: import copy old = [1,[1,2,3],3] new = copy.deepcopy(old) 在上述代码中,old是原始列表,new是深拷贝得到的新列表。无论对new进行任何修改,都不影响到old的值。这种方法是最安全、最清爽、最有效的深拷贝方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [深入浅析Pythonlist的复制及深拷贝与浅拷贝](https://download.csdn.net/download/weixin_38643269/12867045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python列表List的复制(直接复制、浅拷贝、深拷贝)](https://blog.csdn.net/weixin_49899130/article/details/129380610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值