前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的列表操作

python中的列表操作

作者头像
py3study
发布2020-01-09 15:37:20
3.8K0
发布2020-01-09 15:37:20
举报
文章被收录于专栏:python3python3

列表:(list) 容器类型:某个对象包含对其它对象的引用,则将其称为容器。 列表可以包含任何种类的对象(数字、字串、甚至嵌套其他列表,可以嵌套元组) 内部包含:任意对象的有序集合,通过索引访问其中的元素,可变对象,支持异构(包含多种不同的元素),任意嵌套

代码语言:javascript
复制
 支持在原处修改:
        列表的可变表现为:其内部的每一个元素,存储在列表中不是对象本身,而是对象的引用,其修改其实是修改的引用,而不是真正的修改了内部的某个对象。

                使用[]创建列表

list1 = ["This","is","a","pig"] print list1[0] This print list1[0][0] T

列表和元组并不真正存储数据而是存放的对象引用!

解释: ["this","is","a","pig"] 这里并不是存放了"this",而是在内存中找个了地方存放的"this",只是把"this"的存储的位置存放在这个列表当中。

python中的列表操作
python中的列表操作

---列表的异构:

In [2]: list = [1,'b']

In [3]: print list [1, 'b']

---嵌套的列表:

In [6]: list2 = [[1,2],['a','b']]

In [7]: print list2 [[1, 2], ['a', 'b']]

---列表的修改

In [11]: list2 = [1,2,3,4,5]

In [12]: print list2 [1, 2, 3, 4, 5]

In [13]: list2[1] = 888

In [14]: print list2 [1, 888, 3, 4, 5]

---删除指定的元素

In [15]: list2 Out[15]: [1, 888, 3, 4, 5]

In [16]: del(list2[1:])

In [17]: print list2 [1]

---新增一个元素(append方法) 在最后指定附件元素 In [19]: list2 = [1,2,3,4]

In [20]: print list2 [1, 2, 3, 4]

In [21]: list2.append(5)

In [22]: print list2 [1, 2, 3, 4, 5]

能不能附加多个元素?附加一个列表进来

In [30]: print list2 [1, 2, 3, 4, 5]

In [31]: list3 = ['x','y','z']

In [32]: list2.append(list3)

In [33]: print list2 [1, 2, 3, 4, 5, ['x', 'y', 'z']]

注意:这里是把这个列表当作一个元素附加进来的。

---extend 方法 extend list by appending elements from the iterable 通过附加迭代元素来扩展列表

In [37]: list1 = [1,2,3,4]

In [38]: list2 = ['x','y','z']

In [39]: list1.extend(list2)

In [40]: print list1 [1, 2, 3, 4, 'x', 'y', 'z']

是把两个列表合并在一起了

---index方法(返回字符,第一次出现的索引编号)

In [45]: list1 = [1,2,1,3,3,2]

In [46]: list1.index(2) Out[46]: 1

--- insert 方法(在指定的元素前面添加元素)

In [49]: list = [1,2,3,4,5]

In [50]: list.insert(2,'xyz')

In [51]: print list [1, 2, 'xyz', 3, 4, 5]

---pop方法(弹出列表中的元素,默认是最后一个元素,按照索引删除,而remove是按照值删除的) In [57]: list Out[57]: [1, 2, 'xyz', 3, 4]

In [58]: list.pop() Out[58]: 4

In [59]: list.pop() Out[59]: 3

In [60]: list Out[60]: [1, 2, 'xyz']

----remove 方法 (删除列表中指定的元素,安装值来删除)

In [62]: list = [1,2,3,4,5]

In [63]: list.remove(3)

In [64]: print list [1, 2, 4, 5]

* 列表相加会有什么效果呢? *** list1 + list2:合并两个列表,生产一个新列表,原列表不会改变 list1 * N :重复list1 N次,生产新列表

list1 = [1,2,3] list2 = ['x','y','z'] list1 + list2 [1, 2, 3, 'x', 'y', 'z'] ----> 返回了新的列表 print list1 [1, 2, 3] print list2 ['x', 'y', 'z'] list1 [1, 2, 3] list1 * 3 [1, 2, 3, 1, 2, 3, 1, 2, 3]

in 操作符:成员关系判断符 判断一个元素,是不是在一个列表当中,在返回true,否则返回false 用法:item in container

not in 也类似

list1 [1, 2, 3] 2 in list1 True 'x' in list1 False

在切片级别的修改替换的是元素

list1 [1, 2, 3] list1[1:] [2, 3] list1[1:] = ['x','y','z'] list1 [1, 'x', 'y', 'z']

***** 列表的复制 **** (1)轻度copy

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

为什么会出现这种情况? 因为它们指向了同一个内存对象,不是真正执行了复制

id(list1) 140325613007360 id(list2) 140325613007360

(2) 使用list[:] 方式复制列表

list1 = [1,2,3,4] list3 = list1[:] print list3 [1, 2, 3, 4] list1.append(5) print list1 [1, 2, 3, 4, 5] print list3 [1, 2, 3, 4] id(list1) 140325612904744 id(list3) 140325613007648

(3)通过内置库copy复制列表 import copy copy.deepcopy Deep copy operation on arbitrary Python objects. 对任意Python对象进行深度复制操作。

list1 [1, 2, 3, 4, 5] import copy list1 [1, 2, 3, 4, 5] id(list1) 140325612904744 list2 = copy.deepcopy(list1) print list2 [1, 2, 3, 4, 5] id(list2) 140325613030936

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档