Нужна помощь не могу понять ошибку Python

a = [1,2,3,4,5,6,7,8,9]
b = [5,6,7,8,9,10,11,12,13]
c = []
for i in range(a):
    if a[i] == b[i]:
        c.append(a[i])
print(c)

Ответы (1 шт):

Автор решения: TigerTV.ru

Используйте enumerate вместо range для доступа к индексу:

a = [1,3,4]
b = [1,2,4]
c = []
for i,v in enumerate(a):
    if v == b[i]:
        c.append(v)
print(c)
# [1, 4]

или более кратко

a = [1,3,4]
b = [1,2,4]
c = [v for i,v in enumerate(a) if v == b[i]]
print(c)
# [1, 4]

Также можно реализовать задачу таким способом:

a = [1,3,4]
b = [1,2,4]
c = [i for i, j in zip(a, b) if i == j]
print(c)
# [1, 4]

или так

from itertools import compress

a = [1,3,4]
b = [1,2,4]
*c, = compress(a, map(lambda x, y: x == y, a, b))
print(c)
# [1, 4]
→ Ссылка