码迷,mamicode.com
首页 > 其他好文 > 详细

列表、元组的基本操作

时间:2017-11-03 14:05:48      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:ever   pen   就是   log   理解   rem   反转   指定   name   

一、列表

定义列表

>>> names = [a,b,c,d]
>>> names
[a, b, c, d]

通过下标获取列表的各个值,可以从左边开始计数,下标为正数从0开始,也可以从右边开始计数从-1开始

>>> names
[a, b, c, d]
>>> names[2]
c
>>> names[-1]
d

列表的切片:可以一次性获取多个元素,原则为顾头不顾尾,表示后面的那个索引不包括在内

>>> names
[a, b, c, d]
>>> names[1:3]
[b, c]
>>> names[-3:-1]
[b, c]
>>> names[-3:]
[b, c, d]
>>> names[::2] #后面的2表示步长
[a, c]

列表增加元素

>>> names
[a, b, c, d]
>>> names.append(e) #表示在末尾追加元素
>>> names
[a, b, c, d, e]
>>> names.insert(1,A) #表示在指定位置插入元素
>>> names
[a, A, b, c, d, e]

列表修改元素

>>> names
[a, A, b, c, d, e]
>>> names[1]=B
>>> names
[a, B, b, c, d, e]

列表删除元素

>>> del names[1] #删除指定位置的元素
>>> names
[a, b, c, d, e]
>>> names.remove(c) #删除指定值得元素
>>> names
[a, b, d, e]
>>> names.pop() #删除最后一个元素并返回该值
e
>>> names
[a, b, d]
>>> names.pop(0) #删除指定位置的元素并返回该值
a
>>> names
[b, d]

列表的扩展

>>> names
[b, d]
>>> names
[b, d]
>>> b=[1,2,3]
>>> names.extend(b)
>>> names
[b, d, 1, 2, 3]

列表的拷贝(注意浅复制和深复制)

>>> names
[b, d, 1, 2, 3]
>>> name1=names #这样的复制只是两个变量指向同一个地址,当一个发生改变,另一个也会改变
>>> name1
[b, d, 1, 2, 3]
>>> names[1]=A
>>> names
[b, A, 1, 2, 3]
>>> name1
[b, A, 1, 2, 3]

------------------------------------------------------------------
>>> names
[b, [A, B, C], 1, 2, 3]
>>> names2 = names.copy() #这种情况属于浅复制,只会复制第一层的索引,也就是说只会复制出当前的值,至于当前值里面的值得可以被修改的,比如下面的列表里面的那个列表就发生了修改,而列表中的第一个值没有改变
>>> names2
[b, [A, B, C], 1, 2, 3]
>>> names[0]=1
>>> names[1][1]=hello
>>> names
[1, [A, hello, C], 1, 2, 3]
>>> names2
[b, [A, hello, C], 1, 2, 3]
#除了上述的浅复制还有如下几种方法
>>> names=[1,2,3,4]
>>> import copy #通过导入copy模块
>>> name1 = copy.copy(names)
>>> name1
[1, 2, 3, 4]
>>> name2=names[:]
>>> name2
[1, 2, 3, 4]
>>> name3 = list(names)
>>> name3
[1, 2, 3, 4]
------------------------------------------------------------------
>>> names
[1, [a, b], 3, 4]
>>> import copy
>>> name1=copy.deepcopy(names) #使用copy模块中的deepcopy方法进行深复制,从下面的结果看来,值都不会发生改变
>>> name1
[1, [a, b], 3, 4]
>>> names[0]=A
>>> names[1][1]=B
>>> names
[A, [a, B], 3, 4]
>>> name1
[1, [a, b], 3, 4]

列表元素的统计

>>> names=[1,2,1,3,4,3,2,1]
>>> names.count(1)
3

列表的 排序和反转

>>> names=[1,2,1,3,4,3,2,1]
>>> names.sort()
>>> names
[1, 1, 1, 2, 2, 3, 3, 4]
>>> names.reverse()
>>> names
[4, 3, 3, 2, 2, 1, 1, 1]

列表获取下标

>>> names=[a,b,c]
>>> names.index(b)
1

 

二、元组

元组可以理解为不可变的列表,用小括号定义,并且只有两个方法index和count,操作如下

>>> names=(a,b,c,c)
>>> names.count(c)
2
>>> names.index(b)
1

 

列表、元组的基本操作

标签:ever   pen   就是   log   理解   rem   反转   指定   name   

原文地址:http://www.cnblogs.com/zsql/p/7777693.html

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