问题是合并两个列表,保持顺序,并且在合并后的列表中具有相同数量的项目,该列表不能超过10(或任何数字)项,但尽可能多。这是最简单的例子。
然而,如果一个列表没有5个项目,新列表将被填充其他列表中的项目。
该函数应该接受包含任意数量项的列表。这似乎很简单,但实际上并非如此。
l1 = list('1'*10)
l2 = list('2'*10)
lt = l1[:5] + l2[:5]
然而,如果一个列表没有5个项目,新列表将被填充其他列表中的项目。
l1 = list('1'*2)
l2 = list('2'*10)
lt = ['1','1','2','2','2','2','2','2','2','2']
l1 = list('1'*10)
l2 = list('2'*2)
lt = ['1','1','1','1','1','1','1','1','2','2']
该函数应该接受包含任意数量项的列表。这似乎很简单,但实际上并非如此。
max(5, 10 - len(l2))
存储为一个变量,这样会更加通用。 - jamylakdef combine_to_length(list1, list2, length): return list1[:max(length // 2, length - len(list2))] + list2[:max(length // 2, length - len(list1))]
- agf