#列表:增,删,改,查。
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. 个人测试SQL学习

    --普通方法赋值 declare @a int print @a --Update 方法赋值 ) ' print @name --Select 语句赋值 ) ' print @name ) selec ...

  2. 杂谈c.cpp

    Endl确保程序运行前刷新输出(将其立即显示在屏幕上),而’\n’却不能保证 在c++中,是以分号分割的,所以可以把几条代码放在一行,也可以把一条代码放在几行 编译器负责分配和标记内存的细节 C++可 ...

  3. 虚拟机安装centOs+网络配置(完整说明)

    1.新建虚拟机(标准)   选择 (我以后下安装操作系统)       选择Linux 操作系统 版本为CentOS(32位)     虚拟机的名称和位置任意       磁盘容量如下即可     设 ...

  4. [mysql,2018-02-28] bat安装、启动mysql,并创建数据库、表

    @echo off f: cd F:\mysql-win32 @echo off&setlocal enabledelayedexpansion cd bin echo ###### 停止当前 ...

  5. 说下spring生命周期

    面试官:说下spring生命周期 程序员:不会 那你先回去等消息吧     Bean实现了BeanNameAware,Spring会将Bean的ID透传给setBeanName java.后端开发.程 ...

  6. 1732157 - Collecting diagnosis information for SAP HANA [VIDEO]

    Symptom SAP Support asked you to provide a collection of the relevant diagnosis files (also known as ...

  7. 分享下自己写的一个微信小程序请求远程数据加载到页面的代码

    1  思路整理 就是页面加载完毕的时候  请求远程接口,然后把数据赋值给页面的变量 ,然后列表循环 2 js相关代码  我是改的 onload函数 /** * 生命周期函数--监听页面加载 */ on ...

  8. SpringBoot 之静态资源

    boot 的默认的静态资源有多个, 由 ResourceProperties 配置了默认值: private static final String[] CLASSPATH_RESOURCE_LOCA ...

  9. javascript权威指南第1章Js概述js语言核心

    <html> <head> <script> function Point(x,y){ this.x=x; this.y=y; } ,); console.log( ...

  10. 尚硅谷springboot学习33-整合mybatis

    引入mybatis依赖(还要引入mysql和jdbc依赖) <dependency> <groupId>org.mybatis.spring.boot</groupId& ...