列表推导式嵌套
1. 语法:
变量 = [表达式 for 变量1 in 可迭代对象1 for 变量2 in可迭代对象2]
2. 传统写法:
result = []
for r in [“a”, “b”, “c”]:
for c in [“A”, “B”, “C”]:
result.append(r + c)
3. 推导式写法:
result = [r + c for r in list01 for c in list02]
元组 tuple
定义
1. 由一系列变量组成的不可变序列容器。
2. 不可变是指一但创建,不可以再添加/删除/修改元素。
基础操作
1. 创建空元组:
元组名 = ()
元组名 = tuple()
2. 创建非空元组:
元组名 = (20,)
元组名 = (1, 2, 3)
元组名 = 100,200,300
元组名 = tuple(可迭代对象)
3. 获取元素:
变量 = 元组名[索引]
变量 = 元组名[切片] # 赋值给变量的是切片所创建的新列表
4. 遍历元组:
正向:
for 变量名 in 列表名:
变量名就是元素
反向:
for 索引名 in range(len(列表名)-1,-1,-1):
元组名[索引名]就是元素
作用
1. 元组与列表都可以存储一系列变量,由于列表会预留内存空间,所以可以增加元素。
2. 元组会按需分配内存,所以如果变量数量固定,建议使用元组,因为占用空间更小。
3. 应用:
变量交换的本质就是创建元组:x, y = (y, x )
格式化字符串的本质就是创建元祖:“姓名:%s, 年龄:%d” % (“tarena”, 15)
"""
元组tuple
练习:exercise01,exercise02
"""
# 1. 创建
tuple01 = ()
tuple01 = (4, 545, 5665, 7, 78)
list01 = [54, 5, 56, 67]
# 列表(预留空间) --> 元组(按需分配)
tuple02 = tuple(list01)
# 元组(按需分配) --> 列表(预留空间)
list02 = list(tuple01)
# 特殊
# -- 如果元组只有一个数据,必须在后面添加逗号
tuple03 = (4,)
# -- 小括号可以省略
tuple04 = 4, 5, 6
# -- 可以直接将容器赋值给多个变量
a, b, c = (8, 9, 10)
print(type(tuple04))
# 2. 查询
# -- 索引
print(tuple01[-1]) # 获取最后一个
print(tuple01[2]) # 获取第三个
# -- 切片
# 原理:创建新容器
print(tuple01[-3:]) # 最后三个
# -- 循环
for item in tuple01:
print(item)
for i in range(len(tuple01) - 1, -1, -1):
print(tuple01[i])
"""
请使用容器的思想,改造下