Python中如何根据列表B的长度重复执行指定代码行?
解决方案:根据列表长度重复执行代码的优化写法
你可以用两种方法避免重复书写代码:
方法一:使用for循环批量执行
直接根据len(B)的次数循环执行目标代码,不管B的长度如何变化,代码都无需手动修改重复行:
A = [0,1,2,3,4,5,6,7] B = [1,3,6,7] # 循环len(B)次执行操作 for _ in range(len(B)): A = A[:1] + [i + 1 for i in A] print(A)
方法二:利用规律直接生成结果(更高效)
观察代码执行的规律:每次执行都是保留第一个元素0,再把当前A里的所有元素加1后追加到后面。执行k次(k=len(B))后,最终列表是[0]加上从1到原A最后一个元素 + k的连续整数。比如原A最后一个元素是7,k=4时就生成1到11的序列,一步到位:
A = [0,1,2,3,4,5,6,7] B = [1,3,6,7] k = len(B) # 直接构造结果列表 A = [0] + list(range(1, A[-1] + k + 1)) print(A)
两种方法都能得到和手动重复4次代码完全一致的输出:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
内容的提问来源于stack exchange,提问作者user19862793
相关产品推荐
相关产品推荐

