python - 如何在列表中制作独立列表?
问题描述
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']]
解决方案
在分配之前使用复制方法拥有个人列表的副本
main_seat_list = [seats_in_row_list.copy() for i in range(rows)]
推荐阅读
- visual-studio - Hyperledger Iroha 构建问题
- python - 如何使用一系列键来索引值?
- python - Conda:如何取消由`anaconda`包指定的包?
- c# - 删除列索引中包含 Nulls/Empty 的行
- xcode - 如何让 XCode 记录测试
- haskell - Haskell - 这个平均函数是如何工作的?
- javascript - 从云功能更新 Firestore 文档
- html - 使用 mix-blend-mode 设置的元素会破坏具有 mix-blend-mode 属性的其他元素(Chrome)
- rust - 从迭代器返回的对象中的可变引用
- bash - Infile 更改项目的填充