1 列表的语法和使用: 2 语法:中括号表示列表,小括号表示的是元组,元组是只读的 3 4 列表的基本操作: 5 name.insert 插入 6 name.append 追加 7 name.remove 删除 8 name.count 计数 9 name.clear 清空 10 name.index 查找 11 name.extend 扩展 12 name.reverse 颠倒 13 name.sort 排序 14 name.copy 复制 15 len() 长度 16 17 18 age = 20 19 name = ["zjh","zl","zxc",12,age] 列表语法:以中括号开始和结束,中间的每一个值叫元素,列表里可以存变量。 20 print name 21 ['zjh', 'zl', 'zxc', 12, 20] 22 name[1] 从列表取值:起始位置(索引值)是从0开始,所以1是'zl' 23 'zl' 24 name[-1] 取出列表中最后一个值是-1,以此类推 25 '20' 26 name[0:2] 列表中取一部分值 27 ['zjh', 'zl'] 28 name[-3:] 取最后的3个值,最后一个默认不写 29 name[:3] 取最前的3个值 30 31 >>> name 切片:可以在取出的值中继续取值 32 ['zjh', 'zzx', 'zxc', 20, 20] 33 >>> name[:5] 34 ['zjh', 'zzx', 'zxc', 20, 20] 35 >>> name[:5][2:4] 36 ['zxc', 20] 37 >>> name[:5][2:4][0][1] 38 'x' 39 40 >>> name 改值:改值操作 41 ['zjh', 'zzx', 'zxc', 20, 20] 42 >>> name[1] = 'zzz' 43 >>> name 44 ['zjh', 'zzz', 'zxc', 20, 20] 45 >>> 46 47 >>> name 插入:在zzz后面插入zhangjianghua,所以要插入的下标是2,用name.insert插入,一次只能插入一个值 48 ['zjh', 'zzz', 'zxc', 20, 20] 49 >>> name.insert(2,"zhangjianghua") 50 >>> name 51 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20] 52 >>> 53 54 >>> name 追加:直接在列表的最后面追加一个值,直接用append追加 55 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20] 56 >>> name.append('zhangliang') 57 >>> name 58 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20, 'zhangliang'] 59 >>> 60 61 >>> name 删除:用name.remove(xxx) 直接删除 62 ['zjh', 'zzz', 'zhangjianghua', 'zxc', 20, 20, 'zhangliang'] 63 >>> name.remove("zxc") 64 >>> name 65 ['zjh', 'zzz', 'zhangjianghua', 20, 20, 'zhangliang'] 66 >>> 67 68 del name del不用加括号,直接删除一个列表;del是python中的全局功能,删除内存中的一个数据,能删除任何东西。 69 del name[2:4] 70 71 >>> name 修改:给其中一个值添加备注 72 ['zjh', 'zzz', 'zhangjianghua', 20, 20, 'zhangliang'] 73 >>> name[2] = "zhangjianghua(didi)" 74 >>> name 75 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang'] 76 >>> 77 78 >>> name 步长:默认是走一格,可以定义它走多长。 79 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang'] 80 >>> name[0:-1:1] 81 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20] 82 >>> name[0::1] 83 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang'] 84 >>> name[::2] 85 ['zjh', 'zhangjianghua(didi)', 20] 86 >>> 87 88 >>> name 判断:判断列表里是否存在一个元素 89 ['zjh', 'zzz', 'zhangjianghua(didi)', 20, 20, 'zhangliang'] 90 >>> print(9 in name) 91 False 92 >>> print(20 in name) 93 True 94 >>> 95 96 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8] 判断:name.count 判断一个列表中存在多少个8 97 if 8 in name: 98 num_of_element = name.count(8) 99 print("[%s] 8 is in name" % num_of_element) 100 执行结果: 101 [7] 8 is in name 102 103 104 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8] 判断并修改:name.index找出列表中所有的8,并且全部替换为88888. 105 if 8 in name: 106 num_of_ele = name.count(8) 107 position_of_ele = name.index(8) 108 print("[%s] 8 is in name,position: [%s]" % (num_of_ele,position_of_ele)) 109 for i in range(name.count(8)): 110 ele_index = name.index(8) 111 name[ele_index] = 88888 112 print (name) 113 执行结果: 114 [7] 8 is in name,position: [10] 115 ['zz', 'xx', 'cc', 22, 11, 33, 44, 55, 66, 66, 88888, 88888, 4, 9, 88888, 88888, 88888, 88888, 88888] 116 117 118 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8] 扩展:name.extend 扩展进来一个新的列表,新的列表依然存在 119 name2 = ["gg","nn","mm","ee"] 120 name.extend(name2) 121 print (name) 122 print (name2) 123 执行结果: 124 ['zz', 'xx', 'cc', 22, 11, 33, 44, 55, 66, 66, 8, 8, 4, 9, 8, 8, 8, 8, 8, 'gg', 'nn', 'mm', 'ee'] 125 ['gg', 'nn', 'mm', 'ee'] 126 127 128 name = ["zz","xx","cc",22,11,33,44,55,66,66,8,8,4,9,8,8,8,8,8] 颠倒:name.reverse 排序颠倒 129 name2 = ["gg","nn","mm","ee"] 130 name.extend(name2) 131 print (name) 132 name.reverse() 133 print (name) 134 执行结果: 135 ['zz', 'xx', 'cc', 22, 11, 33, 44, 55, 66, 66, 8, 8, 4, 9, 8, 8, 8, 8, 8, 'gg', 'nn', 'mm', 'ee'] 136 ['ee', 'mm', 'nn', 'gg', 8, 8, 8, 8, 8, 9, 4, 8, 8, 66, 66, 55, 44, 33, 11, 22, 'cc', 'xx', 'zz'] 137 138 139 140 name = [55,33,22,11,45,1,31,31,5,15,689,43,1,2] 排序:name.sort 按照从小到大顺序依次排列(python3里不支持数字和字符串同时排序,python2默认是数字在前,字符串在后) 141 print (name) 142 name.sort() 143 print (name) 144 执行结果: 145 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2] 146 [1, 1, 2, 5, 11, 15, 22, 31, 31, 33, 43, 45, 55, 689] 147 148 149 150 name = [55,33,22,11,45,1,31,31,5,15,689,43,1,2] 删除:指定删除某一个,默认删除表里最后一个值 151 print (name) 152 name.pop(2) 153 print (name) 154 执行结果: 155 name = [55,33,11,45,1,31,31,5,15,689,43,1,2] 156 157 158 name = [55,33,22,11,45,1,31,31,5,15,689,43,1,2,"zz"] 复制:name.copy 复制一个独立、完整的列表 159 print (name) 160 name2 = name.copy() 161 print (name2) 162 name2[0] = 55555 163 print (name,name2) 164 执行结果: 165 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 166 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 167 [55, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] [55555, 33, 22, 11, 45, 1, 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 168 169 170 name = [55,33,[22,11,45,1],31,31,5,15,689,43,1,2,"zz"] 171 print (name) 172 name2 = name.copy() 173 print (name2) 174 print (name[2][1],name2[2][1]) 175 name[2][1] = 11111 嵌套列表的copy:通过修改name表中嵌套的列表内的值,可以看出,python默认只copy第一层,嵌套列表里的值不copy;嵌套列表内的值和列表是储存在同一个内存块里的。 176 print (name,name2) 177 执行结果: 178 [55, 33, [22, 11, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 179 [55, 33, [22, 11, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 180 11 11 181 [55, 33, [22, 11111, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] [55, 33, [22, 11111, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 182 183 184 185 name = [55,33,[22,11,45,1],31,31,5,15,689,43,1,2,"zz"] 长度:len() 查看列表的长度 186 print (name) 187 print ("name ",len(name)) 188 执行结果: 189 [55, 33, [22, 11, 45, 1], 31, 31, 5, 15, 689, 43, 1, 2, 'zz'] 190 name 12 191 192 print (type(name)) 查看变量的类别 193 执行结果: 194 <class 'list'> class:类别,list:列表 195 196 197 198 199 基本操作: 200 name.insert 插入 201 name.append 追加 202 name.remove 删除 203 name.count 计数 204 name.clear 清空 205 name.index 查找 206 name.extend 扩展 207 name.reverse 颠倒 208 name.sort 排序 209 name.copy 复制 210 len() 长度 211 212 213 214 215 216 元组:(不可变列表) 217 创建元组: 218 name = ("zz","xx",12,21,321) 语法:中括号表示列表,小括号表示的是元组,元组是只读的 219 print(type(name)) 220 执行结果: 221 <class 'tuple'> class:类别 tuple:元组