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

列表操作

时间:2018-08-13 23:48:59      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:长度   pad   使用方法   family   new   假设   range   冒号   for   

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才是真正复制了一个列表。
 
 
 
 
 
 

列表操作

标签:长度   pad   使用方法   family   new   假设   range   冒号   for   

原文地址:https://www.cnblogs.com/FerrisFu/p/9471599.html

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