列表创建 创建列表,用方括号[]将元素括起来,逗号(,)分割,列表里的元素不需要统一类型
list1 = [1,2.3,'goods'] l3 = [a for a in range(5)] print(l3) # [0, 1, 2, 3, 4]列表操作 访问列表里的数据,下标访问[index] 下标截取访问[start:end],前闭后开
print(list1[1]) print(list1[0:2]) ''' 2.3 [1, 2.3] '''增加数据 append 删除数据 del remove
list1 = [1, 2.3, 'goods'] list1.append(34) print(list1) # [1, 2.3, 'goods', 34] del list1[0] print(list1) # [2.3, 'goods', 34] list1.remove('goods') print(list1) # [2.3, 34]两个列表用加号(+)可以组合成一个新的列表 星号(*)可以重复列表 遍历用for in 判断是否包含
l1 = [1,2,3,'a','b','c'] l2 = ['d','e','f'] print(l1+l2) print(l2*2) for i in l1: print(i,end='\t') print('\n*********') for j in range(len(l1)): print(l1[j],end='\t') print('\n',2 in l1) ''' 输出: [1, 2, 3, 'a', 'b', 'c', 'd', 'e', 'f'] ['d', 'e', 'f', 'd', 'e', 'f'] 1 2 3 a b c ********* 1 2 3 a b c True '''列表的截取操作[start: end: step] 从左到右 0 开始 从右到左 -1 开始 第三个参数step 表示步长,如果是负数,表示逆向 参数如果不写,表示顶头 start到end 前开后闭
l4 = [a for a in range(9)] print('l4---',l4) # [0, 1, 2, 3, 4, 5, 6, 7, 8] print('l4[0:4]下标从0到4---',l4[0:4]) print('l4[::2]从头到尾步长2---',l4[::2]) print('l4[::-1]表示从尾到头---',l4[::-1]) # 可用来反转列表 print('l4[-1:-4:-1]表示从最后一个到倒数第三个---',l4[-1:-4:-1]) print('l4[::-2]表示从尾到头步长2---',l4[::-2]) ''' 输出: l4--- [0, 1, 2, 3, 4, 5, 6, 7, 8] l4[0:4]下标从0到4--- [0, 1, 2, 3] l4[::2]从头到尾步长2--- [0, 2, 4, 6, 8] l4[::-1]表示从尾到头--- [8, 7, 6, 5, 4, 3, 2, 1, 0] l4[-1:-4:-1]表示从最后一个到倒数第三个--- [8, 7, 6] l4[::-2]表示从尾到头步长2--- [8, 6, 4, 2, 0] '''常用函数 max和min 函数 要求列表的各个元素之间是可比较大小的,不然会报错
# l4 : [0, 1, 2, 3, 4, 5, 6, 7, 8] l5 = ['a', 'b', 'a', 'b', 9, 10] print('len() 计算长度:', len(l4)) print('max() 计算最大值:', max(l4)) print('min() 计算最小值:', min(l4)) print('count() 计数:', l5.count('a')) l4.append(l5) print('extend() 追加:', l4) # print('index() 返回第一次出现的下标,没有则报错ValueError',l4.index(2),l4.index('f')) l4.insert(2, 'insert') print('insert() 插入:', l4) print('pop(index) 移除元素并返回,不指定index则默认-1,', l4.pop(), l4.pop(0)) l5.remove('a') print('remove() 移除列表里指定的第一个匹配项:', l5) l5.reverse() print('reverse() 反转列表 :', l5) def length(e): return len(str(e)) l5.sort(key=length) ''' sort(key=None, reverse=False): key 可以指定排序函数,reverse为true时降序,false升序 sort直接对原列表进行操作,方法返回None sorted(iterable, *, key=None, reverse=False): 根据iterable的值返回一个新的排序列表, key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较元素)。reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。 ''' print('sort() 排序:', l5) print('copy() 复制列表:',l5.copy()) l5.clear() print('clear() 清空列表:',l5) ''' 输出结果: len() 计算长度: 9 max() 计算最大值: 8 min() 计算最小值: 0 count() 计数: 2 extend() 追加: [0, 1, 2, 3, 4, 5, 6, 7, 8, ['a', 'b', 'a', 'b', 9, 10]] insert() 插入: [0, 1, 'insert', 2, 3, 4, 5, 6, 7, 8, ['a', 'b', 'a', 'b', 9, 10]] pop(index) 移除元素并返回,不指定index则默认-1, ['a', 'b', 'a', 'b', 9, 10] 0 remove() 移除列表里指定的第一个匹配项: ['b', 'a', 'b', 9, 10] reverse() 反转列表 : [10, 9, 'b', 'a', 'b'] sort() 排序: [9, 'b', 'a', 'b', 10] copy() 复制列表: [9, 'b', 'a', 'b', 10] clear() 清空列表: [] '''创建元组 类似于列表,用()将元素括起来,逗号分隔 只包含一个元素时,需要在元素后加个逗号
# -*- coding:utf-8 -*- # 创建空元组 t1 = () # 创建元组 t2 = (1,2,3,'a','b','c') # 创建一个元素的元组 t3 = (1,) t4 = (1) print('t1 及类型:',t1,type(t1)) print('t2 及类型:',t2,type(t2)) print('t3 及类型:',t3,type(t3)) print('t4 及类型:',t4,type(t4)) ''' t1 及类型: () <class 'tuple'> t2 及类型: (1, 2, 3, 'a', 'b', 'c') <class 'tuple'> t3 及类型: (1,) <class 'tuple'> t4 及类型: 1 <class 'int'> '''元组操作 元组的访问和列表类似,根据下标访问,也可以通过下标进行截取, 通过加号(+)进行组合,通过星号(*)重复,通过[start: end:step]可以进行截取反转等操作 元组是不可变的,元组的元素不能修改,但是如果元组的元素是可变类型的,那么可变元素的元素可以改变
l1 = [3, 4, 5, 6] t5 = (1, 2, l1) print(l1 == t5[2]) # True # t5[2]=[1,2,3] 不能改变 t5[2][0] = 6 print(t5) # (1, 2, [6, 4, 5, 6]) print(l1 == t5[2]) # True元组中的元素不支持删除操作,但是可以用del 删除整个元组 元组常用方法有len(),max(),min() tuple(seq) 将list,range等 转换成元组 index() , count(), 类似列表