列表与嵌套列表的关系及元素索引映射方法咨询
一维列表与二维嵌套列表的索引关联方法
首先明确三者的关系:
list1是一维扁平列表,包含了从1到num²的连续元素;rows是将list1按每num个元素为一组拆分得到的二维行式嵌套列表,每个子列表对应一行;columns是将rows转置后得到的二维列式嵌套列表,每个子列表对应一列。
1. list1 与 rows 的索引关联
要让 list1[x] == rows[y][z],可通过整除和取余运算直接推导索引关系:
- 行索引
y = x // num(对x做num的整数除法,得到元素所在的行) - 列索引
z = x % num(对x取num的余数,得到元素在该行内的位置)
验证示例(num=3):
比如x=4,list1[4] = 5:
y = 4 // 3 = 1,z = 4 % 3 = 1rows[1][1] = 5,与list1[4]完全一致。
对应的Python代码:
num = 3 list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] rows = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] x = 4 y = x // num z = x % num print(list1[x] == rows[y][z]) # 输出 True
2. list1 与 columns 的索引关联
columns是rows的转置结构,索引关系需调换行和列的推导逻辑:
- 列索引(对应columns的子列表索引)
y = x % num - 行索引(对应columns子列表内的位置)
z = x // num
验证示例(num=3):
比如x=5,list1[5] = 6:
y = 5 % 3 = 2,z = 5 // 3 = 1columns[2][1] = 6,与list1[5]完全一致。
对应的Python代码:
num = 3 list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] columns = [[1, 4, 7], [2, 5, 8], [3, 6, 9]] x = 5 y = x % num z = x // num print(list1[x] == columns[y][z]) # 输出 True
内容的提问来源于stack exchange,提问作者Charl
相关产品推荐
相关产品推荐

