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

 支持在原处修改:列表的可变表现为:其内部的每一个元素,存储在列表中不是对象本身,而是对象的引用,其修改其实是修改的引用,而不是真正的修改了内部的某个对象。使用[]创建列表

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

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

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

---列表的异构:

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

转载于:https://blog.51cto.com/wangergui/2065885

python中的列表操作相关推荐

  1. 【Python】Python中的列表操作

    Python的列表操作可谓是功能强大且方便(相对于Java)简单.常规的操作就不说了(这不是一个入门教程),介绍几个很有特点的例子 添加 # 追加到结尾(append) li = [1, 2, 3, ...

  2. 从python中的列表中获取唯一值[重复]

    本文翻译自:Get unique values from a list in python [duplicate] This question already has an answer here: ...

  3. 如何在Python中反转列表?

    如何在Python中执行以下操作? array = [0, 10, 20, 40] for (i = array.length() - 1; i >= 0; i--) 我需要一个数组的元素,但是 ...

  4. python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...

    这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...

  5. Python中的字符串操作总结(Python3.6.1版本)

    Python中的字符串操作(Python3.6.1版本) (1)切片操作: str1="hello world!" str1[1:3] <=> 'el'(左闭右开:即是 ...

  6. Python中的文件操作和异常

    Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...

  7. Python中的序列操作

    Python中的序列操作 分类: python undefined 官方手册:https://docs.python.org/3.7/library/stdtypes.html#sequence-ty ...

  8. python36_第36 p,就这几个方法,Python中文件的操作

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...

  9. 零基础Python完全自学教程15:Python中的列表

    欢迎你来到站长学堂,学习站长在线出品的在线课程<零基础 Python完全自学教程>今天给大家分享的是第14课< Python中的列表 >.本节课是一个大课,我分了这些知识点进行 ...

最新文章

  1. 利用 FastCoding 将对象进行本地持久化
  2. cogs 539. 牛棚的灯
  3. c语言链表查找的代码与题目,链表的C语言实现之单链表的查找运算_c语言
  4. 简单shell:删除五日之前的日志文件
  5. STL源码剖析 Set相关算法 并集 set_union|交集 set_intersection|差集 set_difference |对称差集 set_symmetric_difference
  6. Mac计算器的计算过程怎么看?教你一键查看运算记录!
  7. 安卓第二阶段实训预备案例:访问媒体库音频数据
  8. 配置OpenShift 4 单机版环境 - CodeReady Container
  9. C++基础:第八章 深入IO
  10. 【基础教程】基于matlab图像增强+复原+分割【含Matlab源码 056期】
  11. mpg文件怎么转换成mp4
  12. wps怎么做时间线_wps中的word文档如何制作时间轴
  13. thymeleaf渲染搜索页面(template: “class path resource [templates/serach.html]“)-serach2021-09-23
  14. 游戏编程之六 游戏编程的特点
  15. 无论是否跳槽——都要时刻关注自身能力提升
  16. error: The requested URL returned error: 401 Unauthorized while accessing
  17. 打开浏览器时主页被锁定怎么也改不掉的一个好办法
  18. 硬件知识:一款全隔离的电机驱动电路分析
  19. (OK) 编译 cm-13-kiwi for (华为 荣耀 5X) - 成功
  20. java 发送企业邮箱_java发送企业邮箱

热门文章

  1. 战队基地_走a怪凌晨四点被赶出训练基地,粉丝礼物还被战队瓜分
  2. 零基础python入门编程全栈量化ai 百度云_Python编程量化AI全栈零基础入门帖子详情 - 网易云课堂...
  3. android 炫酷背景,炫酷-背景图垂直循环滚动登录页,Android RecyclerView实现
  4. 平流式初沉池贮砂斗计算_水处理相关计算软件大全,提高工作效率必备
  5. matlab mesh与surf比较
  6. HDLBits 系列(30)Serial Receiver
  7. 连续时间傅里叶变换的性质(简介及推导)
  8. Virtex-6系列FPGA的CLB
  9. ARTS打卡计划第二周-Share-使用java注解对方法计时
  10. 1020. 月饼 (25)