列表操作

2018-08-14 10:06:52来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

1、添加元素
(1)列表末尾添加
x=[1,2]
x.append(3)
>>>x=[1,2,3]
(2)列表中插入
x=[1,2]
x.insert(1,5)# 在索引1处添加空间, 并将值5 存储到这个地方
>>>x=[1,5,2]
2、删除元素
(1)del语句删除
x=[1,2,3]
del x[0]#
>>>x=[2,3]
(2)使用pop删除
可删除列表中任何一个数,并且还能继续使用它,当pop()里为空时,默认弹出列表末尾的数。
x=[1,2,3]
y=x.pop(1)
>>>x=[1,3]
>>>y=2
(3)使用remove删除特定的值
只知道值是多少,但不知道其在列表中的索引时,可用remove()进行删除,但列表中出现多个该数时,只会删除第一个,若想要都删除,则需借助循环。
x=[1,2,3]0
x.remove(3)
>>>x=[1,2]
3、组织列表
(1)用sort对列表进行永久性排序
假设列表中值都是小写的,让列表按首字母顺序排列。
x=['h','c','l','p','a','d','r','g']
x.sort()
print(x)
>>>['a', 'c', 'd', 'g', 'h', 'l', 'p', 'r']
按照与字母相反的顺序排列,向sort传递reverse=True.
x=['h','c','l','p','a','d','r','g']
x.sort(reverse=True)
print(x)
>>>['r', 'p', 'l', 'h', 'g', 'd', 'c', 'a']
(2)用sorted对列表进行临时排序。
需要临时以特定的顺序呈现列表 ,但又要保留列表一开始的顺序,可用sorted().若需要按与字母顺序相反的方式显示列表,也可向函数sorted传递参数reverse=True.
x=['h','c','l','p','a','d','r','g']
print(sorted(x))
print(x)
>>>['a', 'c', 'd', 'g', 'h', 'l', 'p', 'r']
['h', 'c', 'l', 'p', 'a', 'd', 'r', 'g']
(3)反转列表
对列表顺序进行反转,可用方法reverse(),以上两个排序都提到了reverse,但reverse并不是按字母顺序反转列表元素,而仅仅是将列表元素排列顺序反转。
x=['h','c','l','p','a','d','r','g']
x.reverse()
print(x)
>>>['g', 'r', 'd', 'a', 'p', 'l', 'c', 'h']
(4)列表长度
查看列表长度,使用方法len()
x=['h','c','l','p','a','d','r','g']
len(x)
>>>8
4、操作列表
(1)for循环遍历列表
依次遍历x中元素,i的名称可自己定义,但最好有意义,如for cat in cats,这样便于理解。
x=['h','c','l','p','a','d']
for i in x:
    print(i)
>>>h
c
l
p
a
d
(2)创建数值列表
先使用range()生成数字集,再利用list()将数字集转化为列表。
x=list(range(1,5))
print(x)
>>>[1,2,3,4]
range()还可以定制步长,设定好起始数及终止数,再加入步长,如range(2,16,3)
list(range(2,16,3))
>>>[2, 5, 8, 11, 14]
(3)列表解析
列表解析可让for循环一行代码写完。
x=[i**2 for i in range(1,11)]
print(x)
>>>[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
其中i**2表示列表值的表达式,后面的语句将1~10传递给表达式 ,这里的for循环不需要冒号。
(4)切片
需指定第一个元素及最后一个元素的索引,若第一个索引为空时,默认从列表开头获取,同理,若第二个索引为空,默认提取到列表末尾。
x=['h','c','l','p','a','d']
print(x[1:4])
print(x[:4])
>>>['c', 'l', 'p']
['h', 'c', 'l', 'p']
(5)复制切片
当需要对列表进行复制时,需要进行切片复制,直接赋值是行不通的。
x=[1,2,3,4,5,6]
y=x
z=x[:]
x.append(7)
print(x)
print(y)
print(z)
>>>[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6]
从结果可以看出,y跟着x进行了变化,只有z才是真正复制了一个列表。
 
 
 
 
 
 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:常用模块(三)——shelve、xml、hashlib、configparser

下一篇:转-求解最大连续子数组的算法