列表是python中内置有序可变序列,列表的所有元素放在一堆中括号"{}"中,并使用逗号隔开

1.列表的创建

  使用“=”直接创建一个列表

>>> x=[3,34]
>>> x
[3, 34]
>>> x=[3,2,5,[56],[7,9]]
>>> x
[3, 2, 5, [56], [7, 9]]

  也可以使用list()函数将元组、range对象、字符串或其他类型的迭代对象类型的数据转换为列表。

>>> a_list=list((3,5,7,9))
>>> a_list
[3, 5, 7, 9]
>>> list (range(1,10,3))
[1, 4, 7]
>>> list('hello world')
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

2.可以使用“+”运算符将元素添加到列表中。

>>> a_list=[1,2,3]
>>> a_list=a_list + [4]
>>> a_list
[1, 2, 3, 4]

严格意义上这种方法是创建了一个新的列表,并将原列表中的元素和新元素依次复制到新列表的内存空间。

3.append()方法,原地修改列表,是真正意义上的在列表尾部添加元素,速度较快。

>>> a_list.append(9)
>>> a_list
[1, 2, 3, 4, 9]

这个方法不改变列表在内存中的首地址。

4.python采用的是基于值得自动内存管理方式,当为对象修改值时,并不是真的直接修改变量的值,而是使变量指向新的值,这对于python所有类型的变量都是一样的。

>>> a=[1,2,3]
>>> id(a)    #返回对象的内存地址
2848185370368
>>> a=[1,2]
>>> id(a)
2848185620032

5.使用列表对象的extend()方法可以将另一个迭代对象的所有元素添加至该列表对象尾部。通过extend()方法来增加列表元素也不改变其内存首地址,属于原地操作。

>>> a=[1,2,3]
>>> id(a)
2848185370368
>>> a=[1,2]
>>> id(a)
2848185620032
>>> a.extend([1,2,3])
>>> a
[1, 2, 1, 2, 3]
>>> a_list.extend([21,31])
>>> a_list
[1, 2, 3, 4, 9, 21, 31]
>>> a_list.extend([12,13])
>>> a_list
[1, 2, 3, 4, 9, 21, 31, 12, 13]
>>> id(a)
2848185620032

6.使用列表对象的insert()方法将元素添加至列表的指定位置。

>>> a_list.insert(9,11)
>>> a_list
[1, 2, 3, 4, 9, 21, 31, 12, 9, 11, 13]

7.应尽量从列表尾部进行元素的增加与删除操作。

  列表的insert()可以在列表的任意位置插入元素,但由于列表的自动内存管理功能,insert()方法会涉及到插入位置之后所有元素的移动,这会影响处理速度。

  类似的还有后面介绍的remove()方法以及使用pop()函数弹出列表非尾部元素和使用del命令删除列表尾部元素的情况。

8.使用乘法来扩展列表对象,将列表与整数相乘,生成一个新列表,新列表是元列表中元素的重复。

>>> alist=[1,3,5]
>>> blist=alist
>>> id(alist)
2848177708416>>> id(blist)
2848177708416
>>> alist=alist*3
>>> alist
[1, 3, 5, 1, 3, 5, 1, 3, 5]
>>> blist
[1, 3, 5]
>>> id(alist)
2848185306368
>>> id(blist)
2848177708416

9.当使用*运算符将包含列表的列表重读并创建新列表是,并不创建元素的复制,而是创建已有对象的引用。因此,当修改其中一个值时,相应的引用也会被修改。

>>> x=[[None]*2]*3
>>> x
[[None, None], [None, None], [None, None]]>>> x=[[1,2,3]]*4
>>> x[0][0]=10
>>> x
[[10, 2, 3], [10, 2, 3], [10, 2, 3], [10, 2, 3]]
>>>
 

python序列(一)列表的增加的更多相关文章

  1. Python 序列、列表(List)、元组(Tuple)

    序列 序列是Python中最基本的数据结构,包括字符串.列表.元组. 序列,顾名思义,是有序的,序列都有索引,都能进行索引.切片(截取).加(连接).乘(倍增).检查成员的操作. 因为序列有序,可通过 ...

  2. Python序列之列表(一)

    在Python中,列表是一种常用的序列,接下来我来讲一下关于Python中列表的知识. 列表的创建 Python中有多种创建列表的方式 1.使用赋值运算符直接赋值创建列表 在创建列表时,我们直接使用赋 ...

  3. Python序列结构--列表(一)

    列表 列表**包含若干元素的有序连续内存空间**,当列表增加或删除元素时,**列表对象自动进行内存的扩展或收缩**,从而**保证相邻元素之间没有缝隙**.但插入和删除非尾部元素时涉及列表元素大量的移动 ...

  4. Python序列之列表 (list)

    作者博文地址:http://www.cnblogs.com/spiritman/ 列表是Python中最基本的数据结构,是Python最常用的数据类型.Python列表是任意对象的有序集合,通过索引访 ...

  5. python 序列结构-列表,元组,字典,字符串,集合

    列表 """ name_list.__add__( name_list.__getslice__( name_list.__new__( name_list.append ...

  6. python 数组或列表维度增加

    怎么把[,,,,]变成[[],[],[],[],[]]???

  7. python序列元素引用容易出错的地方

    python序列分列表和元组,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可.举个简单的例子,a1是一个元组,a2是一个列表 ...

  8. 『无为则无心』Python序列 — 18、Python列表概念及常用操作API

    目录 1.列表的概念 (1)列表的定义 (2)列表的应用场景 (3)列表的定义格式 2.列表的常用操作 (1)列表的查找 1)通过下标查找 2)通过方法查找 3)判断是否存在 (2)列表的增加 @1. ...

  9. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...

随机推荐

  1. JavaSE 学习笔记02丨对象与类

    Chapter 4. 对象与类 4.1 面向对象程序设计概述 面向对象程序设计(简称OOP),是当今主流程序设计范型.面向对象的程序是由对象组成的,每个对象(来自于标准库或自定义的)包含对用户公开的特 ...

  2. 深入浅出之mysql索引--上

    当着小萌新之际,最近工作中遇到了mysql优化的相关问题,然后既然提到了优化,很多像我这样的小萌新不容置喙,肯定张口就是 建立索引 之类的. 那么说到底,索引到底是什么,它是怎么工作的?接下来就让我和 ...

  3. docker centos容器无法yum

      问题 dockerfile yum -y install vim的时候一直未响应 但是在本地虚拟机centos7上运行则没问题   https://blog.csdn.net/jimiao_xxx ...

  4. CoProcessFunction实战三部曲之二:状态处理

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. 20201101_Python的虚拟环境问题

    虚拟环境使用总结: 1. 安装创建虚拟环境要使用的工具virtualenv  pip install virtualenv -i https://pypi.douban.com/simple/ #使用 ...

  6. 老猿学5G扫盲贴:R15/R16中计费架构和计费原则涉及的规范文档

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.概述 在R16的32.240文档对应规范为3G ...

  7. 第9.9节 Python文件随机读写定位操作方法seek

    类似于C语言,Python也提供了文件位置定位的操作方法seek. 一. 语法 seek(offset, whence=SEEK_SET) 语法释义: 1)offset :将文件当前操作位置移动偏移量 ...

  8. PyQt(Python+Qt)学习随笔:QScrollArea滚动区域的alignment属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 滚动区域的alignment属性对应QScrollArea的alignment属性,用于控制滚动区域 ...

  9. 记一次UE4源码编译和游戏项目打包过程

    1.首先我们需要注册一个Epic账户,网址如下 http://api.unrealengine.com/CHN/GettingStarted/Installation/index.html#bookm ...

  10. float和double有什么区别?

    float和double在游戏行业肯定是用的很多的,虽然这是个很基础的问题,但是面试时被问到还是感觉说的不是很好. 所以还是总结一下: float 单精度浮点数在机内占 4 个字节,用 32 位二进制 ...