首页 > 解决方案 > 如何在列表中制作独立列表?

问题描述

seats = 4  # user can choose an even input, I put 4 for this example
rows = 4  # user can choose an even or odd input, I put 4 for this example
seats_in_row_list = [i for i in string.ascii_uppercase[:seats]]
main_seat_list = [seats_in_row_list for i in range(rows)]

输出是:

[['A', 'B', 'C', 'D'], ['A', 'B', 'C', 'D'], ['A', 'B', 'C', 'D'], ['A', 'B', 'C', 'D']]

但是当我尝试在第一个列表中将“A”更改为“X”时,所有列表都发生了变化:

[['X', 'B', 'C', 'D'], ['X', 'B', 'C', 'D'], ['X', 'B', 'C', 'D'], ['X', 'B', 'C', 'D']] 

我正在寻找的是这个输出:

[['X', 'B', 'C', 'D'], ['A', 'B', 'C', 'D'], ['A', 'B', 'C', 'D'], ['A', 'B', 'C', 'D']]

标签: pythonlist

解决方案


在分配之前使用复制方法拥有个人列表的副本

main_seat_list = [seats_in_row_list.copy() for i in range(rows)]

推荐阅读