码迷,mamicode.com
首页 > 编程语言 > 详细

python 数据类型(列表)学习笔记

时间:2016-09-08 14:23:53      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:


列表

创建列表:
name_list = [alex, seven, eric]

或

name_list = list([alex, seven, eric])

 



其实今天学习的主要内容是
索引
切片
追加
删除
长度
切片
循环
包含


索引和切片:
可以通过下标进行灵活取值
定义一个列表 name = ["baobao","wangdleong","wangwenzhe","wangweiyi","wangda","wanger"]
name = ["baobao", "wangdleong", "wangwenzhe", "wangweiyi", "wangda", "wanger"]
print(name[0]) #默认下标从0开始
print(name[2]) #取出来第三个值
print(name[0:2]) #取出零到到二之间的值
print(name[-1])  #取出倒数第一个值
print(name[::2]) #通过步长取值
print(name[-3:]) #倒数第三个到最后的值
print(name[::2][0]) #取出步长为2,下标为0的值
print(name[::2][0][0])#对值进行再次切片
name[0]="baoshan" #利用下标修改内容
name.insert(3,"wangdejiang") #直接插入下标为3的位置内容
name.append("lingling") #追加内容到最后
name.remove("baoshan") #直接删除内容
print(name)

打印的内容如下:

技术分享

小练习:

name = ["baobao", "wangdleong", "xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger"]
name.insert(-1,"dalongfeng") #插入下标为-1的前面
name.insert(3,"dabaozi") #插到下标为3的位置
name2=name[2:8] #定义一个变量等于第一个的下标为2到7之间的值
print(name2)
print(name)
del name[7] #通过下标利用del删除插入的内容(如果是连续的可以使用[2:5])
del name[3]
name[1]="wangdelongzuzhang" #利用修改添加备注
print(name)
print(name[::2]) #利用步长进行隔离打印,隔离个数根据步长确定

打印内容如下:

技术分享

 

 列表的拷贝等操作:

name = ["baobao", "wangdleong", 9,44,25,634,478,9,"xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger",9,424,25,631,4748,99]
print(9 in name) #判断列表是否包含元素9,如果有为真
print(name.count(9)) #判断列表里面有几个9元素
print(name.index(9)) #查找包含元素的第一个下标值
name2=["dede",2, 8,9,3,7,1,58,"sdjagoew"]
name.extend(name2) #合并列表
name[0]="BAOBAO"
print(name)
name3=name.copy() #copy name成为name3
print(name3)
name.reverse() #翻转列表
#name.sort() #排序,在3.0之后排序只能对字符串排序
name2.pop() #默认删除最后一个
name2.pop(1) #利用下标删除指定的值
print(name2)
print(name)
#可以利用好循环修改列表里面所有相等的元组元素
for i in range(name.count(9)):

    name[name.index(9)]=999999
print(name)

 

 打印的结果:
技术分享

 浅拷贝对比


name = ["baobao", "wangdleong", [9,44,25,634,478,9],"xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger",9,424,25,631,4748,99]

name3=name.copy()
name[0]="BAOBAO" #在此位置修改不会带到name3里面去
name[2][1]=58247 #如果该镶套聊表里面的东西 name3会跟着变
name3[2][2]="DDDDDD" #如果通过name3修改也会相互的更改
#出现的原因是列表里面的镶套列表使用的是单独的内存空间
print(name)
print(name3)

技术分享

技术分享

 深度拷贝应用,在下面有一个如何看元素个数的len
import sys,copy
name = ["baobao", "wangdleong", [9,44,25,634,478,9],"xiaodongfang","wangwenzhe", "wangweiyi", "wangda", "wanger",9,424,25,631,4748,99]

name3=name.copy()
name4=copy.copy(name) #和neme拷贝一样,是浅拷贝
name5=copy.deepcopy(name) #深度拷贝,是直接拷贝了一个内存块
name[0]="BAOBAO" #在此位置修改不会带到name3里面去
name[2][1]=58247 #如果该镶套聊表里面的东西 name3会跟着变
name3[2][2]="DDDDDD" #如果通过name3修改也会相互的更改
#出现的原因是列表里面的镶套列表使用的是单独的内存空间
print(name)
print(name3)
print(name4)
print(name5)
print(len(name5)) #列表长度,元素个数
print(id(name),id(name3),id(name4),id(name5)) #可以通过id,查看内存位置

技术分享

 

python 数据类型(列表)学习笔记

标签:

原文地址:http://www.cnblogs.com/WDeLong/p/5849355.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!