Я пытаюсь создать функцию, которая будет принимать список, такой как:
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"]
]
и ключ, например, "A".И выдаст список, содержащий int на основе того, сколько раз KEY появляется в 2D-списке в каждой ячейке 2x2.Например, функция
def count_in_grids(l, key):
вернет
[3, 0, 0, 2, 2, 2, 1, 2, 3]
Пока у меня действительно плохой код, который я написал.У меня обычно возникают проблемы при манипулировании 2D-списками.Поскольку это на самом деле задание, мне не разрешено использовать какую-либо библиотеку.Если кто-нибудь может помочь мне понять и написать это, я буду очень признателен.
Мой дерьмовый код, который я написал до сих пор:
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
ВЫХОД: строка 63, в countInGrids count + =line [line [el]: line [el] +1] .count (вещь) TypeError: объект 'int' не подлежит подписке
PS: Если кому-то интересно, это мой 1-й семестр CS Lab