列表元组的操作符
  • len在列表与元组上的使用

names = ['cyn', 'ckk', 'cgq']
length=len(names)
print(length)#3


  • len函数可以计算出 除了数字类型以外,其他所有的数据类型的长度
  • 列表(元组)之间的累加与乘法

#累加操作
name = ['cyn', 'ckk', 'cgq']
names=name+name
print(names)#['cyn', 'ckk', 'cgq', 'cyn', 'ckk', 'cgq']

#乘法操作
name = ['cyn', 'ckk', 'cgq']
names=name*2
print(names)#['cyn', 'ckk', 'cgq', 'cyn', 'ckk', 'cgq']


  • in和not in在列表(元组)中的用法
  • in是判断某个成员(元素)是否在该数据结构中
  • not in就是判断某个成员(元素)是否不在该数据结构中

name = ['cyn', 'ckk', 'cgq']

print('ckk' in name) # True
print('ccc' not in name) # True
print("cqq" in name) # False


列表的添加-append函数
  • append的功能
  • 将一个元素添加到当前列表中
  • append的用法
  • 用法:

list.append(new_item)


  • 参数:
  • New_item:添加进列表的新的元素(成员)
  • 示例代码:

name = ['cyn']
name.append("cgq")
print(name) # ['cyn', 'cgq']


  • append的注意事项
  • 被添加的元素只会被添加到末尾
  • append函数是在原有列表的基础上添加,不需要额外添加新的变量
列表的添加-insert函数
  • insert的功能
  • 将一个元素添加到当前列表的指定位置中
  • insert的用法
  • 用法:

list.insert(index,new_item)


  • 参数:
  • index:新的元素放在哪个位置(数字)
  • new_item:添加的新元素(成员)
  • 示例代码:

number_list = [1, 2, 3, 4, 5, 6]
number_list.insert(3, 999)
print(number_list) # [1, 2, 3, 999, 4, 5, 6]


  • insert与append的区别
  • append只能添加到列表的结尾,而insert可以选择任何一个位置
  • 如果insert传入的位置列表中不存在,则将新的元素添加到列表结尾
  • 字符串,元组,元素的位置是从0开始计算的。
列表(元组)的count函数
  • count的功能
  • 返回当前字符串中某个成员的个数
  • count的用法
  • 用法:

inttype=list.count(item)


  • 参数:
  • item:你想查询个数的元素
  • 示例代码:

number_list = [1, 2, 3, 4, 1, 1, 2, 5, 6]
print(number_list.count(1)) # 3


  • count的注意事项
  • 如果查询的成员(元素)不存在,则返回0
  • 列表只会检查完整元素是否存在需要计算的内容
列表的remove函数
  • remove的功能
  • 删除列表中的某个元素
  • remove的用法
  • 用法:

list.remove(item)


  • 参数
  • item:准备删除的列表元素
  • 示例代码:

number_list = ['cgq', 'ckk', 'cyn']
number_list.remove('cgq')
print(number_list) # ['ckk', 'cyn']


  • remove的注意事项
  • 如果删除的成员(元素)不存在,会直接报错
  • 如果被删除的元素有多个,只会删除第一个
  • remove函数不会返回一个新的列表,而是在原先的列表中对元素进行删除
  • Python内置函数del
  • del把变量完全删除

number_list = ['cgq', 'ckk', 'cyn']
del number_list
print(number_list) # NameError: name 'number_list' is not defined


pop和del我们稍后见
  • pop是列表中另一个删除函数
  • del也可以删除列表中的指定元素
  • 我们会在学习索引的时候为大家讲解这两个函数的用法
列表的reverse函数
  • reverse的功能
  • 对当前列表顺序进行反转
  • reverse的用法
  • 用法:

list.reverse()


  • 参数:
  • 无参数传递
  • 示例代码:

number_list = ['西瓜', '苹果', '香蕉']
number_list.reverse()
print(number_list) # ['香蕉', '苹果', '西瓜']


列表的sort函数
  • sort的功能
  • 对当前列表按照一定规律进行排序
  • sort的用法
  • 用法:

list.sort(key=None,reverse=False)


  • 参数:
  • key:参数比较
  • reverse:排序规则(reverse=True 降序,reverse=False 升序(默认))
  • key涉及函数学习,我们再日后讲解当前默认不传即可
  • 示例代码:

number_list = ['西瓜', '苹果', '香蕉']
number_list.sort()
print(number_list) # ['苹果', '西瓜', '香蕉']


  • sort的注意事项
  • 列表中的元素类型必须相同,否则无法排序(报错)

number_list = ['西瓜', '苹果', '香蕉',1,2]
number_list.sort()
print(number_list) # TypeError: '<' not supported between instances of 'int' and 'str'


列表的clear函数
  • clear的功能
  • 将当前列表中的数据清空
  • clear的用法
  • 用法:

list.clear()  ->该函数无参数,无返回值


  • 示例代码:

number_list = ['西瓜', '苹果', '香蕉']
number_list.clear()
print(number_list) # []


列表的copy函数
  • copy的功能
  • 将当前的列表赋值一份相同的列表,新列表与旧列表内容相同,但内存空间不同。
  • copy的用法
  • 用法:

list.copy() ->该函数无参数,返回一个一模一样的列表


  • 示例代码:

number_list = ['西瓜', '苹果', '香蕉']
new_list=number_list.copy()
print(id(number_list)) # 140225378071008
print(id(new_list)) # 140225378073568
print(number_list) # ['西瓜', '苹果', '香蕉']
print(new_list) # ['西瓜', '苹果', '香蕉']


  • copy与2次赋值的区别
  • 二次赋值的变量与原始变量享有相同内存空间
  • copy函数创建的新列表与原始列表不是一个内存空间,不同享数据变更
  • copy属于 浅拷贝

a = [1, 2, 3]
b = a.copy()
b.append(4)
print(a) # [1, 2, 3]
print(b) # [1, 2, 3, 4]


浅拷贝
  • 通俗的说,我们有一个列表a,列表里的元素还是列表,当我们拷贝出新列表b后,无论是a还是b的内部的列表中的数据发生了变化后,相互之间都会收到影响。

a = [[1, 2, 3], [11, 22, 33]]
b = a.copy()
print(a) # [[1, 2, 3], [11, 22, 33]]
print(b) # [[1, 2, 3], [11, 22, 33]]

b[0].append(4)

print(a) # [[1, 2, 3, 4], [11, 22, 33]]
print(b) # [[1, 2, 3, 4], [11, 22, 33]]


深拷贝
  • 不仅仅对第一层数据进行了copy,对深层的数据也进行copy,原始变量和新变量完完全全不共享数据。

import copy

a = [[1, 2, 3], [11, 22, 33]]
b = copy.deepcopy(a)
print(a) # [[1, 2, 3], [11, 22, 33]]
print(b) # [[1, 2, 3], [11, 22, 33]]

b[0].append(4)

print(a) # [[1, 2, 3], [11, 22, 33]]
print(b) # [[1, 2, 3, 4], [11, 22, 33]]


列表的extend函数
  • extend的功能
  • 将其他列表或元组中的元素倒入到当前列表中(也可以说是合并)
  • extend的用法
  • 用法:

list.extend(iterable)


  • 参数:
  • iterable代表列表或元组,该函数无返回值
  • 示例代码:

a=['a','b']
b=['c','d']

a.extend(b)
print(a)#['a', 'b', 'c', 'd']


索引与切片之列表
  • 什么是索引
  • 字符串,列表和元组
  • 从左边记录的位置就是索引
  • 索引用数字表示,起始从0开始
  • 字符串,列表(元组)的最大索引是他们的长度-1
  • 4.Python列表的常用方法_数据
  • 示例代码:

number_list = ['西瓜', '苹果', '香蕉']
print(number_list[0]) # 西瓜
print(number_list[1]) # 苹果
print(number_list[2]) # 香蕉
print(number_list[3]) # IndexError: list index out of range


  • 什么是切片
  • 索引用来对单个元素进行访问,切片则对一定范围内的元素进行访问。
  • 切片通过冒号在中括号内把像个的两个索引找出来[0:10]
  • 切片规则为:左含,右不含
  • 示例代码:

number_list = [1,2,3,4,5,6,7,8,9,10]
print(number_list[3:8]) # [4, 5, 6, 7, 8]


  • 列表的索引,获取与修改

list[index]=new_iitem


  • 数据的修改只能在存在的索引范围内
  • 列表无法通过添加新的索引的方式赋值

list.index(item)


  • 示例代码

name_list = ['cgq', 'ckk', 'sly', 'cyn']
print(name_list.index('cgq')) # 0
print(name_list.index('wdr'))#ValueError: 'wdr' is not in list

# 修改元素
name_list[0] = 'wsf'
print(name_list) # ['wsf', 'ckk', 'sly', 'cyn']


  • 通过pop的功能
  • 通过索引删除并获取列表的元素
  • 用法:

list.pop(index)


  • 参数:
  • index:删除列表的第几个索引
  • 函数会删除该索引的元素并返回
  • 如果传入的index索引不存在则报错

name_list = ['cgq', 'ckk', 'sly', 'cyn']
delete_data = name_list.pop(0)
print(delete_data) # cgq


  • 通过del删除索引

del list[index]


  • 直接删除,无返回值
  • 如果index(索引)不存在则报错
  • 示例代码:

name_list = ['cgq', 'ckk', 'sly', 'cyn']
del name_list[0]
print(name_list) # ['ckk', 'sly', 'cyn']

del name_list[3] # IndexError: list assignment index out of range


  • 索引在元组中的特殊性
  • 可以和列表一样获取索引与切片索引
  • 元组函数index和列表用法完全一致
  • 无法通过索引修改删除元素
索引与切片之字符串
  • 字符串的索引,获取
  • 索引规则与列表相同
  • 切片和索引的获取与列表相同
  • 无法通过索引修改与删除
  • 字符串不可修改
  • 示例代码:

string = 'my name is ckk'
print(string[6]) #e

string[6] = '2' # TypeError: 'str' object does not support item assignment
del string[6] # TypeError: 'str' object doesn't support item deletion


  • 字符串的find与index函数
  • 功能:
  • 获取元素的索引位置
  • 用法:

# item:查询个数的元素,返回索引位置
string.index(item)

#item:查询个数的元素,返回索引位置
string.find(item)


  • find与index的区别
  • find如果获取不到,返回-1
  • index如果获取不到,直接报错

string = 'my name is ckk'
print(string.find('z')) # -1
print(string.index('z')) # ValueError: substring not found