编写一个手动循环来搜索一个列表会使事情过于复杂。编写两个循环来搜索两个字符串列表,并试图将它们混合在一起,同时循环索引其他的东西,难怪你会迷惑自己。
让我们放弃它,改用一些字典:
columns = {'apple': 1, 'lemon': 2, 'pear': 3}
rows = {'red': 1, 'yellow': 2, 'green': 3}
现在,如果您想知道要放入哪个矩阵元素,就没有循环,只有两个dict查找:
>>> (colname, rowname), value = [["apple", "red"], " 1 "]
>>> columns[colname]
1
>>> rows[rowname]
1
所以,现在我们要做的就是从一个空矩阵开始:
matrix = [
['///', 'apple', 'lemon', 'pear'],
['red', 0, 0, 0],
['yellow', 0, 0, 0],
['green', 0, 0, 0]]
在元素上循环:
for (colname, rowname), value in list1:
查找列和行:
col = columns[colname]
row = rows[rowname]
并存储号码:
matrix[row][col] = value
就