enumerate 和for in搭配使用
好问题!我们来把这两点完全拆开讲清楚:
1. enumerate(test_cases, 1)
的输出是什么?
enumerate
会把一个列表(或其它可迭代对象)变成 带编号的迭代器。
举个例子:
test_cases = [("鸡蛋1", "完整"), ("鸡蛋2", "裂了")]
print(list(enumerate(test_cases, 1)))
输出结果是:
[(1, ('鸡蛋1', '完整')), (2, ('鸡蛋2', '裂了'))]
👉 你看到它变成了一个列表,里面每个元素是 (序号, 原来的元素)
1
和2
是编号('鸡蛋1', '完整')
和('鸡蛋2', '裂了')
是原来列表里的元素
2. for i, (n, expected) in enumerate(test_cases, 1):
在 for ... in ...
循环里,in
会从 enumerate(...)
里面一个个取出元素。
也就是:
第一次循环:取出
(1, ('鸡蛋1', '完整'))
第二次循环:取出
(2, ('鸡蛋2', '裂了'))
然后,for i, (n, expected)
就会 拆包:
第一次:
i=1, n="鸡蛋1", expected="完整"
第二次:
i=2, n="鸡蛋2", expected="裂了"