Python基础篇07-python基本数据类型-list
# 列表 # 1、定义列表 names = ['张三','李四','老王','小仓','小海','小明','小黑','小白'] # 2、通过下标获取元素 print(names[0]) # 第一个元素 print(names[1]) # 第二个元素 print(names[2]) # 第三个元素 # print(names[3]) # 第四个元素 ,没有这么多的元素给你取,程序上就会报错。 print(names[-1]) # 倒着取,取最后一个 # 3、获取多个元素,切片 # 使用规范: # names[startIndex:endIndex:step] 包头不包尾 print(names[1:3]) # 从下标为1的位置截取,一直到下标为3结束,但是不包含下标为3的元素 print(names[0:]) # 如果只给起始位置,不给结束位置,那么会截取后面的全部 print(names[:]) # 如果是从下标为0开始取,那么0可以省略 print(names[1:-1]) # 从下标为1的位置截取,一直截取到最后一个,但是不包含最后一个 print(names[::2]) # 每个一个取一个 # 追加 names.append(1) # 追加元素,默认从最后添加 print(type(names[8])) # 从指定索引插队 names.insert(1,'老六') print(names[1]) print(names[2]) # 被插队了,就往后靠呗 # 修改数据 names[1] = '李四' print(names[1]) print(names[2]) # 删除元素 del names[1] # 删除指定下标元素,如果没有这个下标,则报错 del names[2] names.remove('小仓') # 删除指定元素,如果没有,则报错 names.pop() # 删除列表最后一个元素 arr = ['1','2','3','4'] names.extend(arr) # 将列表arr合并到names names_copy = names.copy() # 浅拷贝 import copy names_copy2 = copy.copy(names) # 浅拷贝 names_copy3 = copy.deepcopy(names) # 深拷贝 # 统计列表中某个元素出现的次数 print(names.count('李四')) print(names.count('111')) # 如果列表中没有,则返回0 # 列表的排序与反转 print(names.sort()) # 不支持不同类型之间排序 ,没有返回值 print(names) # 默认升序排序的 # 降序 names.sort(reverse=True) print(names) # 反转 print(names.reverse()) print(names) # 获取指定元素的下标 ,返回找到的第一个所在的下标 # names[-2] = '李四' print(names.index('李四'))
循环遍历:
# list 遍历 list = ['html', 'js', 'css', 'python'] # 方法1 print('遍历列表方法1:') for i in list: print ("序号:%s 值:%s" % (list.index(i) + 1, i)) print('\n遍历列表方法2:') # 方法2 for i in range(len(list)): print ("序号:%s 值:%s" % (i + 1, list[i])) # 方法3 print('\n遍历列表方法3:') for i, val in enumerate(list): print ("序号:%s 值:%s" % (i + 1, val)) # 方法3 print('\n遍历列表方法3 (设置遍历开始初始位置,只改变了起始序号):') for i, val in enumerate(list, 2): print ("序号:%s 值:%s" % (i + 1, val)) # 需要注意的是,这里只是把起始的序号改了,但是值还是一个个遍历的 # iter()函数用来生成迭代器,返回迭代对象。 for item in iter(list): print(item)
注:在遍历列表的时候,如果删除某个元素,下标是会重新计算的,所有在删除的时候通过下标去删除元素是可能出问题的。
import copy # 浅拷贝 tempList = [1,2,3,4,[5,6,7,8]] copyList = tempList.copy() tempList.append(5) tempList[4].append(9) print("拷贝之后被修改的原列表:",tempList) # [1, 2, 3, 4, [5, 6, 7, 8, 9]] print("浅拷贝之后的列表:",copyList) # [1, 2, 3, 4, [5, 6, 7, 8, 9]] # 深拷贝,完全复制以前的列表,存储到新的空间 tempDeepList = [1,2,3,4,[5,6,7,8]] deepCopyList = copy.deepcopy(tempDeepList) tempDeepList.append(5) tempDeepList[4].append(9) print("拷贝之后被修改的原列表:",tempDeepList) # [1, 2, 3, 4, [5, 6, 7, 8, 9]] print("深拷贝之后的列表:",deepCopyList) # [1, 2, 3, 4, [5, 6, 7, 8]]