列表是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. nginx负载均衡配置详解

    已经了解了负载均衡的常用算法:轮询,加权轮询,热备等... 接下来就看看具体怎么配置. upstream配置是写一组被代理的服务器地址,然后配置负载均衡的算法. upstream mysvr{ ser ...

  2. C++基础知识篇:C++ 运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运 ...

  3. eNSP VLAN划分基础配置及Trunk接口

    跨交换机实现VLAN通信拓扑图: 一.配置PC机 ip 并测试相互能否ping通 PC名称 IP 子网掩码 网关 PC1 10.1.1.1 255.255.255.0 10.1.1.254 PC2 1 ...

  4. Python中的"缝合器"zip函数:将多个可迭代对象组合成一个迭代器

    zip函数将参数中多个可迭代对象中相同序号的元素取出组合成一个元组作为输出列表的一个同样序号的元素,即输出列表的每个元素是一个元组,该元组的元素来源于参数中每个迭代对象的对应序号的元素. 具体可参考: ...

  5. PyQt(Python+Qt)学习随笔:windows下使用pyinstaller将PyQt文件打包成exe可执行文件

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 在<windows下使用pyinstaller将多个目录的Pyt ...

  6. PyQt(Python+Qt)学习随笔:Qt Designer中部件的windowTitle和windowOpacity属性

    windowOpacity 这个属性仅对window对象生效. windowOpacity为浮点数,表示透明度,为1完全不透明,为0完全透明,缺省是1. 可以通过windowOpacity().set ...

  7. PyQt(Python+Qt)学习随笔:Qt Designer中窗口对象的windowFilePath属性

    windowFilePath属性仅对窗口对象有效,用于关联一个窗口和对应的文件及路径. 当窗口没有设置标题属性的情况下,则窗口标题展示展示windowFilePath对应的文件名的信息(路径信息不展示 ...

  8. 手写mini版MVC框架

    目录 1, Springmvc基本原理流程 2,注解开发 编写测试代码: 目录结构: 3,编写自定义DispatcherServlet中的初始化流程: 3.1 加载配置文件 3.2 扫描相关的类,扫描 ...

  9. Android10_原理机制系列_Window介绍及WMS的启动过程

    简介 Window简介 Android中,Window是一个重要部分,用户看到的界面.触摸显示界面进行一系列操作都涉及到Window.但实际上,Window本身并不具备绘制功能. 该篇简单介绍下Win ...

  10. git——同步本地文件到github上

    参考教程: 1.https://blog.csdn.net/weixin_37769855/article/details/99439904 2.https://www.liaoxuefeng.com ...