(Python) Назначение переменной количества раз, когда указанный символ c появляется в многомерном массиве - PullRequest
0 голосов
/ 17 апреля 2020

Привет всем,

Я довольно плохо знаком с Python как языком, но имею некоторый опыт работы с C# и Javascript, так что это может быть базовый c вопрос.

Я пытаюсь подсчитать, сколько раз один символ появляется в многомерном массиве от решенного начала и конечной точки 1019 * в массиве, а затем назначить это подсчитанное значение переменной. Например:

array1 = [['a', 1],['a', 4],['b', 3],['c', 4]]

Затем я бы хотел присвоить переменной 'x', сколько раз символ, подобный 'a', появляется в массиве от начальной позиции только до третьей позиции в массиве. Мои попытки сделать это:

x = array1[0:2].count('a')
x = ('a' in array1[0:2]).count
x = count('a', beg= 0, end=2(array1))

Я понимаю, что решение может использовать индексацию или что-то подобное? Я все еще плохо знаком с языком и немного борюсь с синтаксисом, поэтому извиняюсь, если ответ очевиден или я что-то неверно истолковал

Любая помощь очень ценится:)
Спасибо

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Элементы array1 являются списками, а не символами, поэтому ни одна из ваших попыток не работает. Вам необходимо проверить первый элемент каждого из этих вложенных списков, а не списки.

x = sum(x[0] == 'a' for x in array1[0:2])

Или вы можете извлечь первые элементы и затем использовать count()

x = list(x[0] for x in array1[0:2]).count('a')

Примечание также, что в срезе выбранные индексы не включают окончательный индекс в срез. 0:2 означает элементы 0 и 1. Так что если вы хотите первые 3 элемента списка, это должно быть 0:3.

0 голосов
/ 17 апреля 2020

Поскольку array1 является массивом списков. Вы должны проверить вхождение "a" в каждом из списков, вплоть до индекса 3 из array1.

Поскольку вы новичок в python ниже простой код для вашей задачи.

array1 = [['a', 1],['a', 4],['b', 3],['c', 4]]
count=0
for ele in array1[:3]:
    for ele1 in ele:
        if ele1=="a":
            count+=1
print(count)

Вывод: 2

Первый для l oop проходит от 0 до 2, выдавая элемент в массиве.

['a',1]
['a',4]
['b',3]

Следующий l oop берет каждый элемент и считает значение "a".

...