列表的使用格式为 [元素1, 元素2, 元素3, …] # 多个数据需要按照一定顺序要保存的时候,可以考虑用列表 # [] 表示一个列表 names = ['张三', '李四', '王五'] # 使用list 内置类 list(可迭代对象) # 例如 # a = list(('张三', '李四', '王五')) # print(a) # 和字符串一样,可以使用下标来获取列表里面的元素 # 可以使用下标来修改 列表里面的元素 # 列表是可修改的 print(names[2]) names[2] = 'jack' print(names[2]) # 使用下标来进行切片 print(names[1:2]) 列表的增删改查列表的操作,有序 可变的 append 把新元素添加到列表的末尾hero = ['李白', '韩信', '后裔', '李元芳'] # 添加元素的方法 # append insert extend # append 在列表的最后面追加一个数据 hero.append('赵云') print(hero) insert 在指定位置 index前插入元素object# insert(index, object) 需要两个参数 # index 表示下标,在那个位置插入数据 # object 表示插入的数据 hero.insert(2, '王昭君') print(hero) extend 将另一个列表逐一添加到列表中# extend(iterable) 需要一个可迭代对象 # a.extend(b) 把b添加到a里面 b不变 a = ['马克菠萝', '狄仁杰'] hero.extend(a) print(hero) print(a) 删除数据的方法 pop remove clearmasters = ['王昭君', '妲己', '小乔', '貂蝉', '西施'] # 删除 修改 查询 # 删除数据的方法 pop remove clear # pop 默认会删除列表的最后一个数据,并且返回数据 # pop(index) 传入索引 index 用来删除指定位置上的数据 # x = masters.pop(2) # print(x) # print(masters) # remove 如果数据在列表中不存在 会报错 masters.remove('王昭君') print(masters) # clear 用来清空一个列表 masters.clear() print(masters) # 使用 del 也可以删除 tanks = ['亚瑟', '程咬金', '盾山', '张飞', '廉颇','廉颇'] # 查询相关的方法 index 元素不存在报错 print(tanks.index('盾山')) # print(tanks.index('庄周')) print(tanks.count('廉颇')) # in 运算符 print('庄周' in tanks) # 修改元素 # 使用下标直接修改列表的元素 排序(sort, reverse)nums = [6, 5, 8, 7, 3, 1, 2, 4] # 排序和反转 # 调用列表的sort方法直接进行排序 # 直接对列表进行排序 # nums.sort() nums.sort(reverse=True) # 反转 print(nums) # sorted 不对原有列表进行改变,生成一个新的原有数据 a = sorted(nums) print(a) # 使用内置函数 reverse name = ['李四', '王五', '张三'] name.reverse() print(name) # 使用切片[::-1] c = name[::-1] print(c) 列表的遍历使用while/for in# 将所有的数据访问一边 遍历针对的是 可迭代对象 # while / for in killers = ['李白', '兰陵王', '韩信', '孙悟空', '赵云'] # for...in 循环是不断的调用迭代器 next查找下一个数据 for k in killers: print(k) i = 0 while i < len(killers): print(killers[i]) i = 1 列表的嵌套关键: 操作嵌套列表,只要把要操作的元素的下标当作变量名来使用即可 import random teachers = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] rooms = [[], [], []] for teacher in teachers: room = random.choice(rooms) room.append(teacher) print(rooms) 列表的推导式关键点:使用简单的语法创建列表 # 使用简单的语法创建列表 # nums = [i for i in range(10)] # print(nums) # # # 取所有的偶数 # x = [i for i in range(10) if i % 2 == 0] # print(x) # points = [(x,y) for x in range(10) for y in range(10)] # print(points) # 生成1到100的数字 m = [i for i in range(1, 101)] n = [m[j: j 3] for j in range(0, 100,3)] print(m) print(n) 列表的复制列表里的copy方法本质上是将原来的列表进行复制,变成新的列表(浅复制),修改新列表的数据并不会影响到原来的数据 import copy x = [100, 200, 300] y = x # x赋值给y,这个时候x,y指向同一个内存地址 # 使用内存空间不一样的 使用 copy 内容一样,指向的空间不一样 z = x.copy() print(z) print(id(x)) ''' [100, 200, 300] 2516632011136 2516630953344 ''' print(id(z)) # 使用Python的方法 a = copy.copy(x) # 相当于浅拷贝 b = x.copy() print(a) print(b) copy模块的使用浅拷贝:对一个对象的顶层拷贝,本质上是拷贝了引用,没有拷贝内容 import copy words = ['hello', 'happy', 'hey', [100, 200, 300], 'hi'] # 浅拷贝 浅拷贝认为只拷贝了一层 words1 = words.copy() print(words1) # 深拷贝 words2 = copy.deepcopy(words) print(words2) 深拷贝:深拷贝是对于一个对象所有层次的递归拷贝 来源:https://www./content-1-800851.html |
|