2. 使用列表推导
列表推导用于从其他可迭代对象(iterable)创建新列表。列表推导返回列表时,它们由包含表达式的方括号组成,该表达式针对每个元素连同for loop加以执行,以便对每个元素执行迭代处理。列表推导速度更快,因为它针对Python解释器进行了优化,以便循环期间发现可预测的模式。
比如,假设使用列表推导来查找前五个整数的平方。
m = [x ** 2 for x in range(5)]print(m) # [0, 1, 4, 9, 16]
现在,假设使用列表推导从两个列表中查找通用数字:
list_a = [1, 2, 3, 4]list_b = [2, 3, 4, 5]common_num = [a for a in list_a for b in list_b if a == b]print(common_num) # [2, 3, 4]
3. 用enumerate进行迭代
enumerate方法为可迭代对象添加一个计数器,并以枚举对象的形式返回。不妨解决通常名为Fizz Buzz问题的经典编码面试问题。
编写一个程序来打印输出列表中的数字;如果是“3”的倍数,输出“fizz”,而不是输出数字;如果是“5”的倍数,输出“buzz”;如果同时是3和5的倍数,输出“fizzbuzz”。
numbers = [30, 42, 28, 50, 15]for i, num in enumerate(numbers):if num % 3 == 0 and num % 5 == 0:numbers[i] = 'fizzbuzz'elif num % 3 == 0:numbers[i] = 'fizz'