我正在寻找在 Python 中创建一个三重嵌套列表。这意味着是 N 个个人的列表,每个人都有 L 个单词的词汇表,对于每个单词,我想存储一个结尾 (e) 和该个人最后一次使用单词 (t) 以来的时间。我知道如何做一个双重嵌套列表,本质上是给一个人一个词汇表:
individual_vocab = [[e,t] for L in range(L)]
如果我有五个词,这会给我这样的东西:
[[e,t,],[e,t],[e,t],[e,t],[e,t]]
我可以改变一个词的结尾而不改变另一个词。
现在,我想用这个词汇表初始化一个个体群体,如果一开始就相同,那很好(事实上,更可取),但它们必须是动态的。我的第一直觉是这样的:
population =[individual_vocab for N in range(N)]
但当然,问题在于这不是动态的:在这种情况下,人口中的所有个体都是彼此的直接副本(即指向个人词汇),因此不会独立改变,如果我这样做这个 N 为 3,然后尝试为第一个个体的第一个单词的单词结尾分配一个新值,我得到这个(其中一个是 e,2s 是 t),它改变了第一个单词的结尾每个人的词:
人口[0][0][0] = "新结局"
人口
[[['new ending', 2], [1, 2], [1, 2], [1, 2], [1, 2]], [['new ending', 2], [1, 2], [1, 2], [1, 2], [1, 2]], [['new ending', 2], [1, 2], [1, 2], [1, 2], [1, 2]]]
如何有效地制作列表列表的动态列表?