def combine_lists(lt1, lt2):
if lt1[0] and lt2[0]:
lt = [lt1, lt2]
elif lt1[0] and not lt2[0]:
lt = [lt1]
elif not lt1[0] and lt2[0]:
lt = [lt2]
elif not lt1[0] and not lt2[0]:
lt = [None, None]
return lt
上面的函数将两个列表合并为一个列表。E、 g.lt1
可能是类似['a', 'b']
把它从2个输入参数扩展到任意数量的列表作为输入,最具python风格的方法是什么。输出仍然应该是一个列表列表
--编辑
lt1=[1,2,3],lt2=[4,5,6]的预期答案应该是[[1,2,3],[4,5,6]]
如果我理解你的问题,你想要这样的东西:
所以,我们使用
args
(存储在tuple
)中的positional arguments,并将它们转换为一个列表。它适用于任意数量的参数,并且可以很高兴地将任何东西(不仅仅是列表)组合成一个列表。在你可以简单地做这个。它会给你两个清单的清单。在
您可以在这里简单地使用列表理解,并使用
*args
对任意数量的参数有效:代码如下所示,通过使用list comprehesis,我们将迭代}。对于每个列表
args
,这是一个未命名参数的元组,调用{lt
,我们检查if lt[0]
如果是这样的话,那么我们将lt
添加到列表中,否则我们添加None
。在注意,这个程序可以引发一个错误:如果
lt
s中的一个不能被索引,或者在索引0处没有元素。所以很不安全。在您可以通过稍微改变语义来防止这种情况发生:如果我们处理的是一个空列表,那么我们在下面的示例中添加该列表:
^{pr2}$如果所有的对象都是列表、元组等,这将起作用
相关问题 更多 >
编程相关推荐