列表是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. Matlab 条件循环函数

    条件判断 if 表达式 语句 elseif 表达式 语句 -. else 语句 end 这个与c语言不同的就是 1:要多一个end 2:还有没有括号 3:else if连在一起 for 循环 for ...

  2. 【Python】我是如何使计算时间提速25.6倍的

    我是如何使计算时间提速25.6倍的 我的原始文档:https://www.yuque.com/lart/blog/aemqfz 在显著性目标检测任务中有个重要的评价指标, E-measure, 需要使 ...

  3. Leetcode第 217 场周赛(思维量比较大)

    Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...

  4. 【知识点】C/C++编码规范

    为了提高我们写的代码的可读性,本文章说一下C/C++的编码规范. 一.源文件头部的注释 /******************************************************* ...

  5. 少标签数据学习:宾夕法尼亚大学Learning with Few Labeled Data

    目录 Few-shot image classification Three regimes of image classification Problem formulation A flavor ...

  6. Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法

    目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled ...

  7. 通过Apache Hudi和Alluxio建设高性能数据湖

    T3出行的杨华和张永旭描述了他们数据湖架构的发展.该架构使用了众多开源技术,包括Apache Hudi和Alluxio.在本文中,您将看到我们如何使用Hudi和Alluxio将数据摄取时间缩短一半.此 ...

  8. PyQt(Python+Qt)学习随笔:布局控件layout的LeftMargin等contentsMargins属性

    在Qt Designer中布局控件有4个,分别是Vertical Layout(垂直布局).Horizontal Layout(水平布局).Grid Layout(网格布局).Form Layout( ...

  9. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游

    本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习.一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止.我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念 ...

  10. 一篇彻底理解JS中的prototype、__proto__与constructor

    1.基本类型不是对象(boolean.undefined.number.string) 2.引用类型都是对象(Array,function ,Object) 3.对象是通过函数创建,并且强调,对象字面 ...