# 达到某个条件的时候我想要主动触发异常# for i in range(10):# if i == 6:# # 主动报错,告诉其他这里不能为 6# # raise 错误类型# raise ValueError('不能为 6')
【6】断言(assert)
# 达到某个为真的条件抛出异常信息# for i in range(0, 10):# # 在源码中会大量出现 --> 用到的时候再详细讲,现在你只需要认识即可# assert i == 6, '不能为6'
【二】列表/字典推导式
【1】固定的语法
[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]]
【1】列表推导式
(1)直接使用 range 关键字构建列表
直接从序列中构建列表
number_list = []
for i inrange(5):
number_list.append(i)
print(number_list) # [0, 1, 2, 3, 4]
使用列表推导式
number_list = [i for i inrange(5)]
print(number_list) # [0, 1, 2, 3, 4]
(2)遍历列表
name_list = ['dream', 'opp']
# 想让每一个人名前面都加 nb_ --> nb_dream# 原始
name_list_ = []
for i in name_list:
name_list_.append('nb_' + i)
print(name_list_)
# 列表推导式
name_list = ['nb_' + i for i in name_list]
(3)对每个元素进行取出空格
#原始
user_data = []
withopen('user_data.text', 'r', encoding='utf-8') as file:
for line in file:
user_data.append(line.strip())
#推导式withopen('user_data.text', 'r', encoding='utf-8') as file:
user_data_list = [line.strip() for line in file]
print(user_data_list)
(4)利用一个元素生成新的列表
# 原始的方法
num_list_one = [i for i inrange(10)]
num_list_two = [i for i inrange(10, 20)]
num_list_new = []
for x in num_list_one:
for y in num_list_two:
num_list_new.append(x*y)
print(num_list_new)
#推导式
num_list_one = [i for i inrange(10)]
num_list_two = [i for i inrange(10, 20)]
num_list = [x * y for x in num_list_one for y in num_list_two]
num_list = [x * y for x in [i for i inrange(10)] for y in [i for i inrange(10, 20)]]
print(num_list)
(5)行和列转换
#原始的方法
num_list = []
for i inrange(len(test[0])):
num_list_ = []
for row in test:
num_list_.append(row[i])
num_list.append(num_list_)
print(num_list)
#推导式
test = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
list_new = [[row[i] for row in test] for i inrange(len(test[0]))]
print(list_new)
#输出结果:
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
[[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
(6)加入条件进行过滤
#原始的方法
num_one = []
for x in test:
if x % 2 == 0:
num_one.append(x)
list_two = list(filter(lambda x: x % 2 == 0, test))
print(list_two)
#推导式
test = [1, 2, 3, 4, 5, 6]
list_one = [x for x in test if x % 2 == 0]
print(list_one)
#输出结果:
[2, 4, 6]
[2, 4, 6]
【2】字典推导式
user_data_dict = {}
#原始的方法withopen('user_data.text','r',encoding='utf8') as fp:
for line in fp:
username,password = line.strip().split('|')
user_data_dict[username] = password
print(user_data_dict)
#推导式withopen('user_data.text', 'r', encoding='utf8') as fp:
user_data_dict = {line.strip().split('|')[0]: line.strip().split('|')[1] for line in fp}
print(user_data_dict)
【3】元组生成式
# ----> 先了解 生成的是生成器对象# num_tuple = (i for i in range(10))# # ---> (0,9)# print(tuple(num_tuple))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南