Python:如何多次获得同一行

时间:2017-06-28 19:07:12

标签: python python-2.7

我需要像bellow一样多次获得相同的原始数据。

A=[2,3,4,5]
B=[[2,3,4,5],[2,3,4,5],[2,3,4,5],[2,3,4,5],...,[2,3,4,5]] 

行数可以更改。 我该怎么办这个问题?

4 个答案:

答案 0 :(得分:1)

试试这个:

B = [[i for i in A] for n in range(5)]

更改range ()来电中的值以更改份数。这不像其他答案那样受到参考共享的影响。

online example

或更短的等价物:

B = [A[:] for n in range(5)]

这也不会受到参考共享的影响,因为切片运算符也会创建深度副本*。

online example

*至少就此输入而言

答案 1 :(得分:0)

正如已经指出的那样,以最简单的方式进行列表理解只会对同一个旧列表进行多次引用。为了确保我们获得列表的新副本,我们可以这样做:

A = [2, 3, 4, 5]
B = [list(A) for i in range(10)]

其中list(A)确保我们获得A的副本,而不是对同一列表的引用。

答案 2 :(得分:0)

你也可以这样做:

B=([A.copy()]*10)

但是,如果它们的元素是复杂的对象,它可以在B中的列表之间产生引用。但是如果你将它用于整数,字符串和其他基本的东西,它将会运作良好。

答案 3 :(得分:-2)

A = [1,2,3]
B= []
n= 5
for i in range(5):
    B.append(A)

其中A是列表,B是结果列表,n是行数