Python多维列表-如果一个值发生更改,则列中的所有值都会更改

Python多维列表-如果一个值发生更改,则列中的所有值都会更改,python,Python,我试图从循环中创建一个多维列表,但在为行和列输入新值时,会导致所有列值同时更改,从而只保留最后一个值。我知道这与我如何初始化列表有关,但不确定如何修复它 代码: 这将打印[[0,51,5],[0,51,5],[0,51,5],[0,51,5],[0,51,5],[0,51,5],[0,51,5]。试试: export_data=[[None for i in range(3)] for i in range(len(days))] 创建export\u数据时,您正在引用相同的列表 您可以通过将

我试图从循环中创建一个多维列表,但在为行和列输入新值时,会导致所有列值同时更改,从而只保留最后一个值。我知道这与我如何初始化列表有关,但不确定如何修复它

代码:

这将打印[[0,51,5],[0,51,5],[0,51,5],[0,51,5],[0,51,5],[0,51,5],[0,51,5]。

试试:

export_data=[[None for i in range(3)] for i in range(len(days))]

创建
export\u数据时,您正在引用相同的列表
您可以通过将代码更改为

export_data = [[None]*3 for i in range(len(days))]
或者,您可以使用
zip
执行相同的操作

export_data = list(zip(days, buyorderprices, sellorderprices))
# [('Days', 'Buyorderprice', 'Sellorderprice'), (150, 10, 0), (120, 11, 1), (90, 21, 2), (60, 31, 3), (30, 41, 4), (0, 51, 5)]

export_data = list(zip(days, buyorderprices, sellorderprices))
# [('Days', 'Buyorderprice', 'Sellorderprice'), (150, 10, 0), (120, 11, 1), (90, 21, 2), (60, 31, 3), (30, 41, 4), (0, 51, 5)]
export_data = [list(e) for e in zip(days, buyorderprices, sellorderprices)]
# [['Days', 'Buyorderprice', 'Sellorderprice'], [150, 10, 0], [120, 11, 1], [90, 21, 2], [60, 31, 3], [30, 41, 4], [0, 51, 5]]