列表是我们最以后最常用可变有序的数据类型,通过列表可以对数据实现最方便的存储、修改等操作。
1 定义列表 2 3 names = ['lhl',"tom",'jack'] 4 通过下标访问列表中的元素,下标从0开始计数 14 >>> names[0] 15 'lhl' 16 >>> names[2] 17 'jack' 18 >>> names[-1] 19 'jack' 20 >>> names[-2] #还可以倒着取 21 'tom'
切片:取多个元素
1 >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] 2 >>> names[1:4] #取下标1至下标4之间的数字,包括1,不包括4 3 ['Tenglan', 'Eric', 'Rain'] 4 >>> names[1:-1] #取下标1至-1的值,不包括-1 5 ['Tenglan', 'Eric', 'Rain', 'Tom'] 6 >>> names[0:3] 7 ['Alex', 'Tenglan', 'Eric'] 8 >>> names[:3] #如果是从头开始取,0可以忽略,跟上句效果一样 9 ['Alex', 'Tenglan', 'Eric'] 10 >>> names[3:] #如果想取最后一个,必须不能写-1,只能这么写 11 ['Rain', 'Tom', 'Amy'] 12 >>> names[3:-1] #这样-1就不会被包含了 13 ['Rain', 'Tom'] 14 >>> names[0::2] #后面的2是代表,每隔一个元素,就取一个 15 ['Alex', 'Eric', 'Tom'] 16 >>> names[::2] #和上句效果一样 17 ['Alex', 'Eric', 'Tom']
追加
1 >>> names 2 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy'] 3 >>> names.append("我是新来的") 4 >>> names 5 ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的']
插入
>>> names ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的'] >>> names.insert(2,"强行从Eric前面插入") >>> names ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的'] >>> names.insert(5,"从eric后面插入试试新姿势") >>> names ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
修改
>>> names ['Alex', 'Tenglan', '强行从Eric前面插入', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的'] >>> names[2] = "该换人了" >>> names ['Alex', 'Tenglan', '该换人了', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的']
删除
>>> del names[2] >>> names ['Alex', 'Tenglan', 'Eric', 'Rain', '从eric后面插入试试新姿势', 'Tom', 'Amy', '我是新来的'] >>> del names[4] >>> names ['Alex', 'Tenglan', 'Eric', 'Rain', 'Tom', 'Amy', '我是新来的'] >>> >>> names.remove("Eric") #删除指定元素 >>> names ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', '我是新来的'] >>> names.pop() #删除列表最后一个值 '我是新来的' >>> names ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy']
扩展
>>> names ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy'] >>> b = [1,2,3] >>> names.extend(b) >>> names ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
拷贝
>>> names ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3] >>> name_copy = names.copy() >>> name_copy ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
统计
>>> names ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3] >>> names.count("Amy") 2
排序&翻转
>>> names ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3] >>> names.sort() #排序 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unorderable types: int() < str() #3.0里不同数据类型不能放在一起排序了,擦 >>> names[-3] = '1' >>> names[-2] = '2' >>> names[-1] = '3' >>> names ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3'] >>> names.sort() >>> names ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom'] >>> names.reverse() #反转 >>> names ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1']
获取下标
>>> names ['Tom', 'Tenglan', 'Amy', 'Amy', 'Alex', '3', '2', '1'] >>> names.index("Amy") 2 #只返回找到的第一个下标
元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法:
1
|
names = ( "alex" , "jack" , "eric" ) |
它只有2个方法,一个是count,一个是index
列表:任意字符有序的集合。
变量名=【“值1”,“值2”,“值3”】
变量名=【“起始值”,“结束值”,“步长”】
下标从左到右从0开始
下标从右到左从-1开始
name[1:3] 取出1和2的值,3不取,顾头不顾尾
name[-2:] 去倒数第二和之后的
name.append("值") 追加值。默认到最后一位
name.insert(1,"值") 插在1的位置,就是第二值
name[2]="值" 把2位置的值改成新的
name.remove("值") 删除莫个值
del name[1] 删除莫个位置的值
name.pop() 删除最后一个,即是-1位置的值
print(name.index("值")) 查莫个值的下标
print(name.count("值")) 统计这个值有多少个
name.clear() 清空值
name.reverse() 值反转,倒过顺序排序
name.sort() 按字母大小前后排序,特殊符号在前面,按ascii编码排序
name.extend(列表名) 两个列表合并,合并的在后面。被合并的列表还存在
namexin=name.copy() 把name列表值拷贝到namexin列表。浅拷贝。namexin改变了值,name也会跟着改变.
想要完整拷贝要import copy
namexin=copy.deepcopy(name) 深拷贝
浅拷贝:
namexin=copy.copy(name)
namexin=name[:]
namexin=list(name)
alst=[0,1,2,3,4,5]
len(alst):返回alst的元素数长度
min(alst):返回alst中的最小值
max(alst):返回alst中的最大值
sum(alst,15):返回所有元素的和,连同15一起加起来
all(alst):alst中所有项为真,则返回真,否则返回假
any(alst):alst中有一项为真,则返回真,否则返回假
注意:min(),max()函数要求序列中的元素能比较大小,sum()函数要求序列中要求元素只能是int 或float类型。