如何将列表内的列表与列表推导相乘

伊格纳西奥·DLF

因此,假设我具有以下结构:

list_test = [["A", "1", "Test"], ["B", "2", "Test2"], ["C", "3", "Test"]]

我想要的输出是:

[["A", "1", "Test"], ["A", "1", "Test"], ["A", "1", "Test"], ["B", "2", "Test2"], ["B", "2", "Test2"], ["B", "2", "Test2"], ["C", "3", "Test"], ["C", "3", "Test"], ["C", "3", "Test"]]

因此,我将每个列表乘以3次。我可以使用扩展和其他迭代方式来做到这一点而没有问题,但是我正在尝试学习使用列表推导来解决它。

我想到了这样的事情:[i * 4 for i in list_test]但这会将列表复制到其内部,如下所示:

[['A', '1', 'Test', 'A', '1', 'Test', 'A', '1', 'Test'], ['B', '2', 'Test2', 'B', '2', 'Test2', 'B', '2', 'Test2'], ['C', '3', 'Test', 'C', '3', 'Test', 'C', '3', 'Test']]

[[i] * 4 for i in list_test] 所做的事情与我想要的类似,但是在另一个列表中,这不是我想要的。

是否可以使用理解力解决这个问题?

亚当·史密斯

您可以通过在理解中使用两个循环来处理此问题。考虑一下平凡的情况:

given = [['a']]
want = [['a'], ['a'], ['a'], ['a']]

这样,您可以执行以下操作:

got = [given[0] for _ in range(3)]

但是,您的示例要复杂一些,因为您有多个元素。您可以改为:

got = [sublst for sublst in given for _ in range(3)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章