列表list: [ ]
类似Java中的数组. 通过索引可以取到具体位置上的值.
1 names = ["ZhangYang","WangGui","LiQiang"] 2 print(names) 3 print(names[0])
1 #取数组中相邻的一些数 2 names = ["Ada","Sasha","Rose","Luke","Sara"] 3 print(names[1:3]) #顾头不顾尾, 这样写是取索引为1和2的值.
切片
1 #取数组最后一位的值 2 print(names[-1]) #从右向左数第一位. 也可以[-2],就是取倒数第二位的值. 3 4 #取数组最后两位的值 5 print(names[-1:-3]) #这样写会报错,因为系统是从左向右数的, 所以-1数完后边已经没有了. 6 7 print(names[-3:-1]) #正确写法 8 9 #取倒数第二个和倒数第三个 10 print(names[-2:]) 11 12 #取前两位 13 print(names[3]) #相当于print(names[0:3]), 0省略了
追加
1 names.append("Nick")
添加数据并放在中间的位置. / 修改.
1 names = ["Ada","Sara","Candy","Cathy","Jessica","Diana"] 2 3 #添加数据插入Sara前面 4 names.insert(1,"Venus") #想放在哪个位置,参数就写对应的索引. 5 6 7 #修改. 把Candy换掉. 8 names[2] = 'XieDi"
删除
1 #删除方法1: 2 names.remove("Ada") 3 4 #删除方法2: 5 del names[0] 6 7 #删除方法3: 8 names.pop() #默认删掉最后一个值. 9 names.pop(1) #等同于del names[1]
查找 / 清空
1 # 查找Ada的位置 2 print(names.index("Ada")) 3 print(names[(names.index("Ada")] #根据找到的索引打印出对应位置的值 4 5 6 #当存在重复数据时, 计算重复数据的个数 7 names = ["Ada","Sara","Cathy","Candy","Diana","Ada"] 8 print(names.count("Ada")) 9 10 11 12 #清空列表 13 names.clear()
反转 / 排序
1 #反转列表 2 names = ["Ada","Sara","Cathy","Candy","Diana","Ada"] 3 4 names.reverse() 5 6 7 #排序 8 names.sort()
添加列表 (类似合并数组) / 删掉列表
1 #合并列表 2 names2 = [1,2,3,4] 3 4 names.extend(names2) 5 6 7 #删掉列表names2 8 del names2
extend和append的区别:
1 a = ['1','2','3'] 2 b = ['2','0'] 3 c = ['6','3'] 4 a.extend(b) # 将另一个列表的元素添加到当前列表中 5 print(a) 6 print('=====================================') 7 a.append(c) # 将另一个列表作为一个元素添加到当前列表中 8 print(a) 9 10 ''' 11 返回值 12 ['1', '2', '3', '2', '0'] 13 ====================================== 14 ['1', '2', '3', '2', '0', ['6', '3']] 15 '''
复制
1 #复制 2 name2 = names.copy()
数组包含数组时修改内嵌数组中的数据
1 # 数组包含数组时修改内嵌数组中的数据 2 3 # 方法1 : copy 浅复制 4 # 数组中内嵌数组的内容在复制时,其实复制的是该内嵌数组的地址,所以当修改该内嵌数组中的数据时,无论原始数组还是复制后的数组,其内嵌数组中的数据都会随之改变. 5 # 但是原始数组中其他值则是直接将该值指向复制后的数组,所以当原始数组中这些值改变时,复制后的数组对应位置的值保持不变. 6 names = ["Ada","Jessica","Cathy","Candy","Luke",["ada","Sara","Mika"]] 7 8 names2 = names.copy() 9 names[2] = "Lucy" 10 names[5][0] = "ADA" 11 print(names) # Cathy被修改成Lucy; ADA改成大写. 12 print(names2) # Cathy不改变. ADA改成大写 13 14 15 # 方法2: import copy, 调用copy.copy()方法和列表中的copy()一样效果 16 import copy 17 names3 = copy.copy(names) 18 names[0] = "Lucy" 19 names[5][1] = "ADA" 20 print(names) # Cathy被修改成Lucy; ADA改成大写. 21 print(names3) # Cathy不改变. ADA改成大写 22 23 24 # 方法3: import copy, 调用copy. deepcopy()方法. 深copy, 可以达到复制内嵌列表中值的效果 25 names4 = copy.deepcopy(names) 26 names[3] = "Lucy" 27 names[5][0] = "ada" 28 print(names) # Cathy被修改成Lucy; ADA改成大写. 29 print(names4) # Cathy不改变. ADA也不改变 30 31 32 # 方法4, 切片的方式实现浅copy 33 names5 = names[:] 34 35 36 # 方法5, 另外一种浅copy的方法 37 names6 = list(names) 38 39 40 # 浅copy在银行公共帐户情形中非常有用. 夫妻二人共开同一个帐户时,每个人取钱都会影响帐户中的总额.
列表的循环 / 跳着打印列表中的值
1 # 列表的循环 2 for i in names: 3 print(i) 4 5 # 跳着打印列表中的值 6 print(names[0:-1:2]) # 每隔一个打印一次. 2代表步长. 7 print(names[::2]) # 0和-1都可以省略,所以写成这样.