#列表:增,删,改,查。
names=['N0','N1','N2',['EX1','EX2'],'N3'] '''
#------------------------------------------------------切片-------------------------------------------------------
print(names)
print(names[0],names[2])
print(names[1:3])#切片
print(names[0:3])#切片,顾头不顾尾,语句效果等同[:3]可以忽略0
print(names[-1])#切片,倒序取。
print(names[3])#切片
print(names[-1:-3])#切片,错误格式,取不到
print(names[-3:-1])#切片
print(names[-4:])#切片
print(names[-2])#切片
print(names[0:-1:2])#步长切片,0或-1可以省略 #------------------------------------------------------增-----------------------------------------------------
names.append('zhuijia')#方法一,append追加,增到后面
print(names)
names.insert(1,'cha-ru')#方法二,insert定点插入,想插入在哪就输入下标
print(names)
names.insert(3,'cha-ru2')#定点插入
print(names)
#---------------------------------------------------删----------------------------------------------------
#names.remove('N1')#方法一,直接删除
#del names[1]#方法二,按下标删除
#names.pop(1)#方法三,效果和del name[]一样,不输入下标则默认删除最后一个
#del names #删除整个列表 #-------------------------------------------------------------改-------------------------------------------
names[2]='modify'#修改,直接写下标,和需要赋值的新值
#------------------------------------------------------------查------------------------------------------------
print(names.index('N2'))
print(names[names.index('N2')])
print(names.count('N2'))#统计个数
#-----------------------------------------------------------其他--------------------------------------------------
#names.clear()#清空列表
#names.reverse()#反转列表
#names.sort()#排序,顺序:特殊符号>数字>大写字母>小写字母,按ASIIC码一样排序。
#------------------------------------------------------------合并-----------------------------------------------
names2=[1,2,3,4]
names.extend(names2)
print(names,names2)
'''
#------------------------------------------------------深copy和浅copy----------------------------------------------
names=['N0','N1','N2',['EX1','EX2'],'N3']#列表里存放的是每个元素的内存地址,是一个指向。
names2=names.copy()#复制了第一层,浅拷贝是指把存放变量的地址值传给被赋值,最后两个变量引用了同一份地址,如果原地址中对象被改变了,那么浅复制出来的对象也会相应改变。
print(names)#打印['N0', 'N1', 'N2', ['EX1', 'EX2'], 'N3']
print(names2)#打印['N0', 'N1', 'N2', ['EX1', 'EX2'], 'N3']
names[2]='NewName'#修改names的N2
print(names)#打印['N0', 'N1', 'NewName', ['EX1', 'EX2'], 'N3']
print(names2)#打印['N0', 'N1', 'N2', ['EX1', 'EX2'], 'N3'],name2是不变的,因为由于它的内存地址还被name2引用,所以2的内存不会被释放,依然存在。
names[3][0]='ex1'#修改子列表
print(names)
print(names2)#此时names和names2的子列表相同,都已经改变,原因是copy过去的是一个内存地址,这里的子列表是一个内存指针,
# ,存放在大列表中是以一种内存地址的的形式。
import copy
names2=copy.deepcopy(names)#深copy在计算机中开辟了一块新的内存地址用于存放复制的对象,等于占两份独立的内存空间。
print(names)
print(names2)
names[2]='NewName'
print(names)
print(names2)
names[3][0]='ex1'#修改子列表
print(names)
print(names2)
#-------------------------------------------------------列表循环---------------------------------------------------
#for i in names:
# print(i)#打印出列表

Python列表详解的更多相关文章

  1. Python数据类型详解——列表

    Python数据类型详解--列表 在"Python之基本数据类型概览"一节中,大概介绍了列表的基本用法,本节我们详细学一下列表. 如何定义列表:在[]内以英文里输入法的逗号,,按照 ...

  2. 28.Python list列表详解

    在实际开发中,经常需要将一些(不只一个)数据暂储起来,以便将来使用.说到这里,一些读者可能知道或听说过数组,它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的各个元素.但使用数组存储数据有 ...

  3. python 数据类型详解

    python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...

  4. python数据类型详解(全面)

    python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...

  5. Python Collections详解

    Python Collections详解 collections模块在内置数据结构(list.tuple.dict.set)的基础上,提供了几个额外的数据结构:ChainMap.Counter.deq ...

  6. python生成器详解

    1. 生成器 利用迭代器(迭代器详解python迭代器详解),我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记 ...

  7. 转 python数据类型详解

    python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...

  8. Python数据类型详解——元组

    Python数据类型详解--元组 有时候我们的列表数据不想被别人修改时该怎么办? 此时,就可以使用元组来存放,元祖又称为只读列表,不能修改 定义方式:与列表类似,将列表的[]换成()即可. 特性: 1 ...

  9. Python数据类型详解——字典

    Python数据类型详解--字典 引子 已经学习了列表,现在有个需求--把公司每个员工的姓名.年龄.职务.工资存到列表里,你怎么存? staff_list = [ ["Kwan", ...

随机推荐

  1. uCOS-III等RTOS与IoT OS

    一.IoT 以百度天工物联网为例,如下图所示: 通过联网设备,将设备连接至云端,并将每个设备的信息进行上传,并在云端进行设备的管理,设备数据的处理计算.存储,可视化的展示和分析.IoT设备较传统的嵌入 ...

  2. springJdbc(jdbcTemplate)事物拦截失效问题解决

    先贴上web.xml和spring-jdbc.xml代码: web.xml代码: <context-param> <param-name>contextConfigLocati ...

  3. 如何将maven依赖项打进jar包,将一个完整的项目打进jar包

    目的:我的目的就是将项目所有的文件,包括pom文件中依赖的jar包都打进一个jar包里面. 过程:将下面的内容放到pom文件里面. </dependencies> <build> ...

  4. 学习笔记之机器学习(Machine Learning)

    机器学习 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0 机器学习是人工智能的一个分 ...

  5. 在WINDOWS下安装MYSQL8.0

    1:创建文件夹D:\data\service\mysql-8.0.11-winx64\data 2:进到D:\data\service\mysql-8.0.11-winx64\bin 第三步:初始化. ...

  6. Python-递加计数器

    计数本:number.txt 1 2 3 4 主程序:计数器 # Author: Stephen Yuan # 递加计算器 import os # 递加计算器 def calc(): file_siz ...

  7. Numpy学习笔记(一)

    (1)NumPy的核心对象 ndarray  用于表示N 维数组类型.它描述相同类型的元素集合. 可以使用基于零的索引访问集合中的项目. (2)Ndarray的创建 可以使用numpy.array() ...

  8. postgresql分区(引用)

    1 建立大表.   2 创建分区继承   3 定义Rule或者Trigger? 1 建立大表        CREATE TABLE student (student_id bigserial, na ...

  9. Tcp三次挥手和四次挥手

    三次握手:  (1) 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认  (2) 第二次握手:服务器B收到SYN包,必须确认客户A的S ...

  10. 【.NET架构】BIM软件架构01:Revit插件产品架构梳理

    一.前言        BIM:Building Information Modeling 建筑信息模型,就是将建筑的相关信息附着于模型中,以管理该建筑在设计.算量.施工.运维全生命周期的情况.创建模 ...