首页 / PYTHON / python中的列表
python中的列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中的列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2514字,纯文字阅读大概需要4分钟。
内容图文
![python中的列表](/upload/InfoBanner/zyjiaocheng/844/ed961e5b5c214252823c42a8ab07f396.jpg)
在python中,列表是可变数据类型
以下面案例作为说明:
>>> li = [1, 2, 3] >>> id(li) 1922056253512 >>> li.append(4) >>> li [1, 2, 3, 4] >>> id(li) 1922056253512
可见对列表取值做了修改之后,列表的内存地址并没发生改变,说明列表是可变数据类型。
列表有许多操作,下面通过案例一一介绍:
1.列表支持索引:
>>> li = [1, 2, 3] >>> li[1] 2 >>> li[1:] [2, 3] >>> li[:2] [1, 2] >>> li[:] [1, 2, 3]
>>> li.index(3)
2
2.列表的增删改查
>>> li = [1, 2, 3] >>> li.append(4) >>> li [1, 2, 3, 4] >>> li.extend((5, 6)) #批量增加,必须是可迭代对象 >>> li [1, 2, 3, 4, 5, 6] >>> li.insert(3, 7) #指定位置插入元素 >>> li [1, 2, 3, 7, 4, 5, 6] >>> li.pop() 6 >>> li [1, 2, 3, 7, 4, 5] >>> li.remove(4) >>> li [1, 2, 3, 7, 5] >>> li[1] = 9 >>> li [1, 9, 3, 7, 5] >>> li[3] 7
>>> li
[1, 9, 3, 7, 5]
>>> li.clear() #清空列表元素
>>> li
[]
3.统计元素出现次数:
>>> li = [3, 5, 2, 1, 2, 7] >>> li.count(2) 2
4.顺序排序和逆序排序
>>> li = [3, 5, 2, 1, 2, 7] >>> li.sort() >>> li [1, 2, 2, 3, 5, 7] >>> li = [3, 5, 2, 1, 2, 7] >>> li.reverse() >>> li [7, 2, 1, 2, 5, 3]
5.列表的复制
要想实现列表复制效果有三种方式:赋值、浅copy、深copy。
三种方式之不同:
5.1赋值后的列表共享原列表的内存地址,意味着原列表发生改变时,被复制的新列表也发生改变,如下:
>>> li1 = [1, 2, [4, 3]] >>> li2 = li1 >>> li1 [1, 2, [4, 3]] >>> li2 [1, 2, [4, 3]] >>> id(li1) 1922056248520 >>> id(li2) 1922056248520 >>> li1[1] = 4 >>> li1 [1, 4, [4, 3]] >>> li2 [1, 4, [4, 3]]
5.2浅copy:经过浅copy后新列表和原列表有不同的内存地址,但是而这并不是独立的,先看如下代码:
>>> li1 = [1, 2, [4, 3]] >>> li2 = li1.copy() >>> li1 [1, 2, [4, 3]] >>> li2 [1, 2, [4, 3]] >>> id(li1) 1922056248328 >>> id(li2) 1922055173256 >>> li1[1] = 4 >>> li1 [1, 4, [2, 3]] >>> li2 [1, 2, [2, 3]]
发现改变原列表的嵌套列表时,新列表也发生了变化,为何?
浅copy复制的只是父级列表下的直接元素的内存地址,当这个内存地址对应的变量类型作为可变数据发生改变,那么新的列表也会发生改变,原因是这个可变数据发生改变时,它的内存地址不会发生变化。
而当这个内存地址对应的变量类型作为不可变数据发生改变,那么他的内存地址就变了,而新的列表复制的是它原来的内存地址,是不会变化的。
>>> li1 = [1, 2, [4, 3]] >>> li2 = li1.copy() >>> li1[2][0] = 2 >>> li1 [1, 2, [2, 3]] >>> li2 [1, 2, [2, 3]] >>> id(li1[2]) 1922056248648 >>> id(li2[2]) #改变作为可变类型的嵌套列表的数值,其内存地址不会变化 1922056248648 >>> li1[1] = 4 >>> li1 [1, 4, [2, 3]] >>> li2 [1, 2, [2, 3]] >>> id(li1[1]) 1587703360 >>> id(li2[1]) #改变作为不可变类型的数字的取值,其内存地址发生了变化,而新列表还是原来内存地址因此不会变化 1587703296
内容总结
以上是互联网集市为您收集整理的python中的列表全部内容,希望文章能够帮你解决python中的列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。