Проблема с поиском по массиву
Имеется простенькая задача (см. комментарии) по поиску в произвольном массиве, однако поиск осуществляется некорректно (выводит неправильное количество). В чем может быть проблема, голову сломал:
mass=[input('Введите через запятую буквенные элементы массива:\n').split(',')]
#количество слов начинающихся на А
count=0
for i in mass:
if i[0]=='А' or i[0]=='а'or i[0]=='a' or i[0]=='A':
count+=1
print(count)
#количество слов с четной длиной
coun=0
for i in mass:
if len(i)%2==0:
coun+=1
print(coun)
#слова, состоящие из трех символов
for i in mass:
if len(i)==3:
print(i)
Ответы (2 шт):
Автор решения: LEO
→ Ссылка
Нужно заменить одну строчку с ифом: if 'A' in i or 'a' in i:
При переборе i принимает значение слова, а слово-это список. Простоя проверка на вхождение элемента
mass = input('Введите через запятую буквенные элементы массива:\n').split(',') # количество слов начинающихся на А
count = 0
for i in mass:
if 'A' in i or 'a' in i:
count += 1
print(count) # количество слов с четной длиной
coun = 0
for i in mass:
if len(i) % 2 == 0:
coun += 1
print(coun) # слова, состоящие из трех символов
for i in mass:
if len(i) == 3:
print(i)
Автор решения: Евгений
→ Ссылка
Исправленная версия вашего кода:
mass=input('Введите через запятую буквенные элементы массива:\n').split(',')
# количество слов, начинающихся на А
count = 0
for i in mass:
if i[0] in 'aAаА':
count += 1
print(count)
# количество слов с четной длиной
coun = 0
for i in mass:
if len(i)%2 == 0:
coun += 1
print(coun)
# слова, состоящие из трех символов
for i in mass:
if len(i) == 3:
print(i)
Сокращённое решение:
mass=input('Введите через запятую буквенные элементы массива:\n').split(',')
# количество слов, начинающихся на А
print(len([word for word in mass if word[0] in 'aAаА']))
# количество слов с четной длиной
print(len([word for word in mass if not len(word)%2]))
# слова, состоящие из трех символов
print(', '.join(word for word in mass if len(word) == 3))