SageMath中如何定义元素为双元素列表的列表?
问题分析与解决
你这段代码会触发索引错误,因为InitialStateSet初始是空列表,你还没往里面添加任何内层列表,就直接通过InitialStateSet[c]访问不存在的位置。
修正方案1:直接生成双元素列表并追加
最直观的方式是,当(i,j)不等于(0,0)时,直接创建包含i和j的列表,再添加到外层列表中:
K = GF(3) InitialStateSet = [] for i in K: for j in K: if (i, j) != (0, 0): InitialStateSet.append([i, j]) print(InitialStateSet)
修正方案2:先初始化内层列表再填充
如果你坚持要先创建内层列表再逐个添加元素,可以先在外层列表中预先添加空列表,再通过索引访问填充:
K = GF(3) InitialStateSet = [] c = 0 for i in K: for j in K: if (i, j) != (0, 0): InitialStateSet.append([]) # 先添加空的内层列表 InitialStateSet[c].append(i) InitialStateSet[c].append(j) c += 1 print(InitialStateSet)
两种方案运行后都会得到GF(3)中除(0,0)外的所有二元组组成的列表,输出结果为:
[[0, 1], [0, 2], [1, 0], [1, 1], [1, 2], [2, 0], [2, 1], [2, 2]]
内容的提问来源于stack exchange,提问作者Kenan123
相关产品推荐
相关产品推荐

