Python列表详解
#列表:增,删,改,查。
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列表详解的更多相关文章
- Python数据类型详解——列表
Python数据类型详解--列表 在"Python之基本数据类型概览"一节中,大概介绍了列表的基本用法,本节我们详细学一下列表. 如何定义列表:在[]内以英文里输入法的逗号,,按照 ...
- 28.Python list列表详解
在实际开发中,经常需要将一些(不只一个)数据暂储起来,以便将来使用.说到这里,一些读者可能知道或听说过数组,它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的各个元素.但使用数组存储数据有 ...
- python 数据类型详解
python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...
- python数据类型详解(全面)
python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...
- Python Collections详解
Python Collections详解 collections模块在内置数据结构(list.tuple.dict.set)的基础上,提供了几个额外的数据结构:ChainMap.Counter.deq ...
- python生成器详解
1. 生成器 利用迭代器(迭代器详解python迭代器详解),我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记 ...
- 转 python数据类型详解
python数据类型详解 目录 1.字符串 2.布尔类型 3.整数 4.浮点数 5.数字 6.列表 7.元组 8.字典 9.日期 1.字符串 1.1.如何在Python中使用字符串 a.使用单引号(' ...
- Python数据类型详解——元组
Python数据类型详解--元组 有时候我们的列表数据不想被别人修改时该怎么办? 此时,就可以使用元组来存放,元祖又称为只读列表,不能修改 定义方式:与列表类似,将列表的[]换成()即可. 特性: 1 ...
- Python数据类型详解——字典
Python数据类型详解--字典 引子 已经学习了列表,现在有个需求--把公司每个员工的姓名.年龄.职务.工资存到列表里,你怎么存? staff_list = [ ["Kwan", ...
随机推荐
- Python3 字典 setdefault() 方法
Python 字典 setdefault() 函数和get() 方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值. dict.setdefault(key, default=None) k ...
- Tag (input) should be an empty-element tag.
因为:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o ...
- 对中断interrupt的理解
一.中断 线程的几种状态:新建.就绪.运行.阻塞.死亡.参考:线程的几种状态转换 线程的可运行状态并不代表线程一定在运行(runnable != running ) . 大家都知道:所有现代桌面和服务 ...
- Inheritance setUp() and tearDown() methods from Classsetup() and Classteardown
I have a general test class in my nosetests suit and some sub-classes, inheriting from it. The con ...
- C++Primer第五版——习题答案详解(四)
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第5章 语句 练习5.9 #include<iostream> #inclu ...
- weakSelf 和 strongSelf的区别和用处
block会copy要在block中使用的实变量,而copy会是变量的retainCount + 1,如若在不注意很容易造成循环引用.而所谓的循环引用的本质就是,两个对象相互引用,从而造成对象不能正常 ...
- Axiso解决跨域访问(...XMLHttpRequest cannot load http://xxx.xxx No 'Access-Control-Allow-Origin'...)
直接访问如下:this.$axios.get("http://localhost:8089/yc/demo").then(res=>{ console.log(res) ...
- 今天看了几个小时的微信小程序说说心得体会
今天看了几个小时的微信小程序说说心得体会 小程序是个前端框架 根据微信相关提供了很多接口 1 先说说各种后缀的文件 .json 后缀的 JSON 配置文件.wxml 后缀的 WXML 模板文件.wxs ...
- Xeon Phi 《协处理器高性能编程指南》随书代码整理 part 2
▶ 第四章,逐步优化了一个三维卷积计算的过程 ● 基准代码 #include <stdio.h> #include <stdlib.h> #include <string ...
- struts2 default.xml详解
struts2 default.xml 内容 1 bean节点制定Struts在运行的时候创建的对象类型. 2 指定Struts-default 包 用户写的package(struts.xml) ...