from math import ceil
lst = [1, 2, 3, 4, 5]
def test(lst, num):
return list(map(lambda x: lst[x * num : x * num + num], list(range(0, ceil(len(lst) / num)))))
print(test(lst, 2))
[[1, 2], [3, 4], [5]]
一、目标用尽量简短的代码将单个列表拆成多个列表二、实现需求需先了解两个小知识(可略过)math模块的ceil(x)函数ceil(x)返回取大于或者等于x的最小整数。>>> from math import ceil>>> num = ceil(5 / 2)>>> num3map函数是指根据提供的函数对指定序列做映射。语法:map(function, iterable, …)>>> lst = list(
names=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
n=3 #将列表每3个组成一个小列表,
for i in range(0, len(names), n):
name=names[i:i + n]
print(name)
上面的例子是正好是分割间隔的整数倍,分割完毕
但如果不是分割间隔的整数倍时,上面的代码能否奏效呢?
names=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
n=3 #将列表每3个
在机器学习的模型验证阶段,需要超参数进行调整,这时候就需要把多个参数的候选值列举出来,遍历参数的所有组合。
说到遍历所有组合,大家都觉得很简单,写个 k 重循环就可以了。但是当 k 在写代码时未知的话,代码怎么写呢?
下面就可以用到 python 的迭代器工具包 itertools !
实验场景如下:
confs = {
'param1':[1,2, ..., n1],
'param9':[1,2, ..., n9],
有若干个参数列表,集成在一个字典结构里,需要写一个函数,返回可选参数的迭代器。
dic = {'a':[1,2,3