(1)元组tuple:
元组是序列类型数据的一种
是置于圆括号“( )”中的逗号分隔的数据
可以包含多种类型的元素
tupa = (1, 2, 3, 4, 5) tupb = ('湖北', '河北', '山东', '山西') tupc = ('Susan', 'Female', 19, (85, 74), [99, 89, 92])
元组的创建
置于圆括号中逗号分隔的多个元素
t1= ('湖北', ['武汉', 2020]) t2= (1, 2, 3) t3= 1, 2, 3 #括号可省略 t4= 1 #括号可省略
元组的创建:
tuple(iterable)函数
t4= tuple(range(1, 4)) t5= tuple('python')
s = ('武汉') # 武汉<class 'str'> t1 = ('武汉',) # 单个元素时,逗号不能省略 t2 = '武汉', # <class 'tuple'> t3 = tuple() # 用函数创建空元组 t4 = () # 空的圆括号创建空元组
元组的修改
元组是不可变数据类型(immutable)
一般无法增加、删除和修改元素
t = (1, 2, [3, 4]) # 元组 t[2] = 0 # 不可元素的值 TypeError: 'tuple' object does not support item assignment t[2][1] = 0 # (1, 2, [3, 0]) 元素是列表,可以修改列表内的数据
元组的方法
元组是不可变数据类型(immutable)
t = (1, 0, 1, 0, 1, 1, 1, 0) print(t.count(1)) # 统计1 的数量,结果5 print(t.index(0)) # 0首次出现的序号,结果1 内置方法: tuple.count(x)# 统计x数量 tuple.index(x)# 返回x索引值
元组的访问
元组是不可变数据类型(immutable)
t = tuple(range(10)) print(t[2]) # 2 print(t[-1]) # 9 print(t[::2]) # (0, 2, 4, 6, 8) t[3] = 0 # 元组元素不能赋值 TypeError: 'tuple' object does not support item assignment
多变量赋值
将元组、列表和字符串等序列中的多个
元素分别赋值给多个独立的变量
x, y = (5, 10) m, n = 3, 4 a, b, c = 'xyz' i, j = [3, 6] 将输入字符串根据分隔符切分为列表, 分别赋值给多个变量 name, score = input().split() # 'Tom 88' 切分后分别赋值给name和score
(2)列表:
列表(list):
置于中括号中的一组数据
数据间以逗号间隔
每个数据项称之为列表的元素
数值与字符串直接存放值
lsa = [1, 2, 3, 4, 5] # 整数 lsb = ['湖北', '河北', '山东'] # 字符串
列表的元素类型无类型限制
列表字典等组合数据存放引用
lsc = [‘Susan’, 19, [85, 74], (99, 89), {1, 2}, {‘Tom’: 18}]
列表的创建
将逗号分隔的一组数据置于方括号“[]”中
lsa = [88, 92, 73, 54] # 元素为整数 lsc = ['武汉', 2020] # 不同类型元素 lsb = [] # 空列表
- 用list() 函数,将字符串、range对象、元组、
集合等可迭代数据转换为列表
参数是字典时,将字典的键转为列表
当参数为空时生成一个空列表
lsa = list() # 空列表:[] lsb = list((1, 2, 3, 4)) # [1, 2, 3, 4] lsc = list(range(5)) # [0, 1, 2, 3, 4] lsd = list('1234') # ['1', '2', '3', '4’] lse = list({'武汉': 1100, '北京': 2800}) # ['武汉', '北京']
- split() 函数可以根据指定字符将字符串切分为列表
函数参数缺省时用空格切分,多个空格切分一次
参数是空格时用一个空格切分,多个空格切分多次
s = 'Life is short, you needPython' # 逗号和空格分隔的字符串 lsa = s.split(',') lsb = s.split() lsc = s.split(' ')
列表的更新
1.通过索引赋值改变列表中指定序号元素值
ls = [88, 56, 95, 46, 100, 77] ls[2] = 66 # 序号2的元素修改为66 • 1 • 2
列表的更新
1.通过索引赋值改变列表中指定序号元素值
ls = [88, 56, 95, 46, 100, 77] ls[2] = 66 # 序号2的元素修改为66
通过索引赋值更新列表时,索引不能超出列表长度
ls = [88, 56, 95, 46, 100, 77] ls[6] = 66 # 序号6的元素不存在
新值可以与列表中原有元素的数据类型不同
可以是一个列表或元组
ls = [88, 56, 95, 46, 100, 77] [88, [{'武汉': 100}, (18, 20)], 66, 'pass', 100, 77] ls[1] = [{'武汉': 100}, (18, 20)] ls[2] = 66 ls[3] = 'pass'
2.用切片赋值的方法更新列表
要求新值也为列表
新值元素与切片元素数量可不相同
ls = [88, 56, 95, 46] ls[1:3] = [33, 44, 55, 66]
切片不连续时新列表与切片元素数量相等
按顺序一一替换
新值类型可与原值类型不同
// An highlighted block ls = [88, 56, 95, 46, 100, 77] ls[0:6:2] = ['Python', 'C', 'VB']
列表方法更新
ls.append()
ls.extend()
ls.insert()
原地操作
无新对象产生
无返回值
列表的id不改变
ls.append(x)
向列表ls末尾追加一个元素x
ls为操作的列表名,x为增加的元素
ls = [88, 56, 95, 46]
ls.append(100)
列表元素的删除
ls.pop(i)
用于移除列表中序号为“i”的一个元素
ls为要删除元素的列表名
i为要删除的元素的序号,整数
ls = [88, 56, 95, 46] ls.pop(2)
ls.pop(i)
用于移除列表中序号为“i”的一个元素
唯一能删除列表元素又能返回值的列表方法
返回值为被移除的元素
ls = [88, 56, 95, 46] n = ls.pop(2) print(n) # 95
ls.pop()
无参数时移除列表的最后一个元素
ls = [88, 56, 95, 46] ls.pop()
ls.remove(x)
删除列表中第一个与参数“x”值相同的元素
存在多个与“x”值相同元素时,只删除第一个
ls = [88, 56, 95, 46,56] ls.remove(56)
ls.remove(x)
列表中不存在与参数“x”相同元素时,抛出异常
ls = [88, 56, 95, 46,56] ls.remove(86) ValueError: list.remove(x): x not in list if 86 in ls: ls.remove(86)
ls.clear()
删除列表中全部元素
ls = [88, 56, 95, 46,56] ls.clear()
命令del
删除列表中通过索引或切片指定的元素
ls = [88, 56, 95, 46,56] del ls[1:3]
命令del
删除列表所有元素
与ls.clear()作用相同
ls = [88, 56, 95, 46,56] del ls[:]