回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试创建一个函数,该函数将包含如下列表:</p>
<pre><code>l = [["A", 1, 2, 3, 4, 5],
["A", "A", 2, 3, 4, 5],
[1, 2, 3, 4, 5, 5],
["A", "A", "A", "A", "A", "A"],
["A", 3, "A", 4, "A", "A"],
[1, 3, 5, "A", 5, "A"]
]
</code></pre>
<p>和一个键,例如“a”。并根据每个2x2单元格中键在2D列表中出现的次数给出一个包含int的列表。例如一个函数</p>
<pre><code>def count_in_grids(l, key):
</code></pre>
<p>会回来的</p>
<pre><code>[3, 0, 0, 2, 2, 2, 1, 2, 3]
</code></pre>
<p>到目前为止,我写了非常糟糕的代码。我通常在处理2D列表时遇到问题。因为这实际上是一个任务,我不允许使用任何图书馆。如果有人能帮我理解和写这篇文章,我将不胜感激。你知道吗</p>
<p>到目前为止我写的糟糕代码:</p>
<pre><code>def countInGrids(l, thing):
new_list = [] # created a final list that will be returned
count = 0
for line in range(0, len(l), 2): # Access lines
for el in range(0, line, 2): # Access elements
#count + count() of all elements in line[el] to line[el+1],
move 2 lines down and repeat.
count += line[line[el]:line[el]+1].count(thing)
count += line+1[line[el]:line[el]+1].count(thing)
new_list.append(count)
print(new_list)
return new_list
</code></pre>
<p>输出:
第63行,在countInGrids中
count+=行[line[el]:行[el]+1]。count(thing)
TypeError:“int”对象不可下标</p>
<p>如果有人想知道,这是我第一学期的CS实验室</p>