list列表

  1 # 计算三个人的年龄的平均值
  2 age1 = 20
  3 age2 = 50
  4 age3 = 55
  5 print((age1 + age2 + age3) / 3)
  6 
  7 # 字符串:一个有序的、不可变的集合
  8 # 列表:本质:一个有序的、可变的集合
  9 
 10 # 数组 -- 列表
 11 
 12 # 一、创建列表
 13 # 语法格式:列表变量名称 = [元素1, 元素2, ......元素n]
 14 # 元素之间用 ,(逗号)隔开
 15 # 列表中的元素可以存在重复的数据
 16 
 17 # 1、创建一个空列表
 18 list1 = []
 19 print(list1)
 20 print(type(list1)) # list
 21 # 2、创建一个有5个元素的列表
 22 list2 = [1,2,3,4,6]
 23 print(list2)
 24 print(type(list2)) # list
 25 
 26 # 3、列表中的元素类型可以为任意类型的数据
 27 list3 = ["a", 'b', 1, 1.2, True, None]
 28 print(list3)
 29 
 30 # 4、列表的中的元素可以是列表类型数据
 31 list4 = [1, 2, 3, [66,77,88], [99,77,44], "a"]
 32 print(list4)
 33 
 34 
 35 # 二、列表元素的访问
 36 list5 = [1,2,3,4,5,6,7,"a"] # 8个元素
 37 # 1、取值:格式:列表名称[下标]
 38 # 下标从0开始
 39 # 下标不能越界,越界报错 最后一个元素的下标值为:列表长度-1 (len(list) -1)
 40 print(list5[3])
 41 # print(list5[16]) # IndexError:list index out of range 下标越界
 42 
 43 # 2、取值:从右向左取
 44 # 下标为 -1 时获取最后一个元素
 45 print(list5[-1])
 46 # print(list5[-9]) # IndexError: list index out of range
 47 
 48 # 3、替换元素
 49 # 语法格式: 列表名称[index] = 新值
 50 list5[1] = 200
 51 print(list5)
 52 
 53 
 54 # 三、列表的操作
 55 # 1、列表组合 +
 56 list6 = [1,2,3]
 57 list7 = [1,2,5,6]
 58 list8 = list6 + list7
 59 print(list8)
 60 
 61 # 2、列表的重复 *
 62 list9 = [1]
 63 print(list9 * 10)
 64 print(list9)
 65 
 66 # 3、判断某个元素是否在列表中
 67 # in not in
 68 list10 = [111, 222, 333]
 69 print(111 in list10) # True
 70 print(555 in list10) # False
 71 
 72 
 73 # 4、列表的截取
 74 # 语法格式:列表名称[[起始下标]:[结束下标] [:[递增基数]]]
 75 list11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 76 # 4.1、从0开始截取,截取到数字6
 77 list12 = list11[:7]
 78 # 4.2、从数字3开始截取,截取末尾
 79 list13 = list11[3:]
 80 # 4.3、截取所有
 81 list14 = list11[:]
 82 # 4.4、从数字3开始截取,截取到数字6
 83 list15 = list11[3:7]
 84 # 4.5、列表逆序
 85 list16 = list11[::-1]
 86 # 4.6、隔一取一
 87 list17 = list11[::2]
 88 print(list12, list13, list14, list15, list16, list17)
 89 
 90 print(list11)
 91 print(list14)
 92 print(id(list11))
 93 print(id(list14))
 94 str1 = "abc"
 95 str2 = str1[:]
 96 print(id(str1))
 97 print(id(str2))
 98 
 99 print(id(list11)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
100 list11[0] = "a"
101 print(id(list11))
102 
103 
104 # 四、数据的操作 -- 增改查删
105 # 1、增 -- 增加数据
106 list18 = [1,2,3,4]
107 print(list18)
108 # 1.1、list.append(obj) 在列表后面添加一个新的元素,obj可
109 # 以是任意类型的数据
110 list18.append(5)
111 print(list18)
112 list18.append("abc") # [1,2,3,4,5,"abc"]
113 print(list18)
114 list18.append(True) # [1,2,3,4,5,"abc", True]
115 print(list18)
116 list18.append([2,3,4]) # [1,2,3,4,5,"abc", True, [2,3,4]]
117 print(list18)
118 
119 # 1.2、list.extend(iter) 在列表后面添加新的元素,将iter中的元素分
120 # 开添加。 注:iter必须是集合类型的元素
121 print("-----------------------------------------")
122 list19 = [1,2,3]
123 print(list19)
124 list19.extend("abcd") # [1, 2, 3, 'a', 'b', 'c', 'd']
125 print(list19)
126 list19.extend([100,200])
127 print(list19) # [1, 2, 3, 'a', 'b', 'c', 'd', 100, 200]
128 # list19.extend(100) # TypeError: 'int' object is not iterable
129 # print(list19)
130 
131 # 1.3、list.insert(index, obj) : 在指定的index位置上添加新的obj元素
132 # 不会覆盖该位置原来的元素,原数据在index上的及之后的元素下标依
133 # 次向后顺移一位
134 list20 = [1,2,3,4]
135 list20.insert(2, 500)
136 print(list20) # [1, 2, 500, 3, 4]
137 list20.insert(3, "abc")
138 print(list20) # [1, 2, 500, "abc", 3, 4]
139 list20.insert(5, [100,200])
140 print(list20) # [1, 2, 500, 'abc', 3, [100, 200], 4]
141 list20.insert(10, "def")
142 # 如果新增数据的下标越界,会在列表后面添加新的元素
143 print(list20)
144 
145 # 2、改 -- 更改数据 更新数据
146 # 语法格式: 列表名称[index] = 新值
147 list5 = [1,2,3,4]
148 list5[1] = 200
149 print(list5)
150 
151 # 3、删 -- 删除数据
152 # 3.1、list.pop([index]): 移除指定index位置的元素,当不指定index的值时,
153 # 默认删除最后一个元素
154 list1 = [0,1,20000,3,4,5,6,7]
155 list1.pop()
156 print(list1)
157 list1.pop(2)
158 print(list1)
159 
160 # 3.2、list.clear() 清空列表中的元素
161 list2 = [1,2,3,4]
162 list2.clear()
163 print(list2)
164 
165 # 3.3、list.remove(item) 移除列表中匹配到的第一个item这个元素
166 list3 = [1,2,3,4,5,3,4,5,3,4,5]
167 list3.remove(2)
168 print(list3)
169 list3.remove(3)
170 print(list3)
171 
172 
173 # 4、查 --- 查询元素
174 # 1、列表中是否存在某一个元素 in not in
175 # 2、列表中是否存在某一个元素 index
176 # list.index(obj [,start, end]) 如果存在,返回第一次匹配到的下标,
177 # 如果不存在,返回错误ValueError
178 list4 = [1,2,3,4,2,3,4]
179 print(list4.index(1))
180 print(list4.index(2))
181 # print(list4.index(7)) # ValueError: 7 is not in list
182 print(list4.index(2, 2, 5))
183 
184 
185 # 五、列表其他操作
186 list5 = [2,3,4,1,5,6,9,7]
187 # 1、len(list) 获取列表长度
188 print(len(list5)) # 8
189 # 2、max(list) 返回列表中最大的元素
190 print(max(list5)) # 9
191 # 3、min(list) 返回列表中最小的元素
192 print(min(list5)) # 1
193 
194 # 4、list.reverse() 列表反转 改变原来的列表
195 list6 = [1,2,3,4]
196 print(list6)
197 list6.reverse()
198 print(list6)
199 # list6[::-1] 返回一个新的列表,不会改变原来的列表
200 
201 # 5、list.count(obj) 返回元素obj在列表中的个数
202 list7 = [1,2,3,3,3,3,3,3,5]
203 print(list7.count(3)) # 6
204 
205 # 6、list.sort([reverse=]) 列表排序,默认正序
206 # reverse默认为False,正序;如果为True,倒序
207 list8 = [7,3,1,5,2,4,6]
208 # list8.sort()
209 list8.sort(reverse=True)
210 print(list8)
211 
212 # 7、拷贝
213 # 7.1、浅拷贝 : 表面上增加了一个变量名称,但内存地址使用被拷贝的地址
214 print('---------------------------------')
215 list100 = [1,2,3,4,5]
216 listCopy = list100
217 print(list100) # [1,2,3,4,5]
218 print(listCopy) # [1,2,3,4,5]
219 print(id(listCopy))
220 print(id(list100))
221 list100[0] = 100
222 print(list100) # [100,2,3,4,5]
223 print(listCopy) # [100,2,3,4,5]
224 
225 # 7.2、深拷贝 -- 返回一个新的列表,内存地址与原来的列表不一致
226 print('***************************************')
227 list200 = [1,2,3,4,5,6]
228 listNew = list200.copy()
229 print(list200) # [1,2,3,4,5,6]
230 print(listNew) # [1,2,3,4,5,6]
231 print(id(list200))
232 print(id(listNew))
233 
234 list200[0] = 10000
235 listNew[2] = 222
236 print(list200) # [10000,2,3,4,5,6]
237 print(listNew) # [1,2,222,4,5,6]
238 
239 print('********************************')
240 list1 = [1,2,[4,5,6]]
241 list2 = list1.copy()
242 print(id(list1))
243 print(id(list2))
244 
245 print(id(list1[2]))
246 print(id(list2[2]))
247 print(list1)
248 print(list2)
249 
250 list1[2][0] = 100
251 list1[0] = 200
252 print(list1)
253 print(list2)
254 
255 # 拷贝的模块
256 import copy
257 a = [1,2,[5,6]]
258 b = copy.copy(a)
259 print('------------------------------')
260 print(id(a))
261 print(id(b))
262 
263 print(id(a[2]))
264 print(id(b[2]))
265 
266 # 真正的深拷贝
267 print("============================")
268 c = copy.deepcopy(a)
269 print(id(a))
270 print(id(c))
271 print(id(a[2]))
272 print(id(c[2]))
273 
274 
275 # 六、二维列表
276 list12 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
277 print(list12)
278 print(list12[1]) # [4, 5, 6]
279 print(list12[1][1])
280 
281 
282 # 七、遍历列表
283 list2 = [2,3,4]
284 # item : 元素
285 for item in list2:
286 print(item)
287 
288 i = 0
289 while i < len(list2):
290 print(list2[i])
291 i += 1
292 
293 for i in range(len(list2)):
294 print(list2[i])
295 
296 # 将列表中重复的元素删除
297 list1 = [1,2,3,1,2,3,4,5,1,2,3]
298 # [1,2,3,4,5]
299 s1 = set(list1)
300 list2 = list(s1)
301 print(list2)
302 
303 
304 # 遍历二维
305 list12 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
306 for item in list12:
307 print(item)
308 for j in item:
309 print(j)
310 
311 for i in range(len(list12)):
312 print(list12[i])
313 for j in range(len(list12[i])):
314 print(list12[i][j])
315 
316  
原文地址:https://www.cnblogs.com/BKY88888888/p/11252502.html