我试图使用 *args 返回元组列表,而不使用该zip函数。这是我到目前为止所拥有的。我对如何在代码中使用 args 有点困惑。我应该成为子列表吗?def merge_wrap_n(*args):
sub_size = max(map(len, args))
tupleList = []
for i in range(sub_size):
tupleList.append((args[i%len(args)]))
return tupleList测试:merge_wrap_n([1, 2], [3], [4, 5, 6]) == [(1, 3, 4), (2, 3, 5), (1, 3, 6)]
1 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
IIUC,您需要两个循环,一个是您拥有的from 0to ,另一个是嵌套循环来循环 args 中的每个元素(用作下面的列表理解):sub_size-1
def merge_wrap_n(*args):
sub_size = max(map(len, args))
tupleList = []
for i in range(sub_size):
tup = tuple([sub_lst[i%len(sub_lst)] for sub_lst in args])
tupleList.append(tup)
return tupleList
>>> merge_wrap_n([1, 2], [3], [4, 5, 6])
[(1, 3, 4), (2, 3, 5), (1, 3, 6)]
添加回答
举报
0/150
提交
取消