Я новичок в python, поэтому прошу прощения за неправильное использование любой терминологии, но я пытаюсь отфильтровать список слов, а затем добавить слова, начинающиеся с «a», в словарь. Но у меня возникли проблемы с добавлением значений после оператора if в словарь. Мой код выглядит следующим образом:

import sys
import re

text = ['Python','can','be','easy','to','pick','up','whether','you', 'are', 'a', 'first', 'time', 'programmer', 'or', 'you', 'are', 'experienced', 'with', 'other', 'languages']
filtered_text={}

#----  to filter words that begin with a ----
for x in text:
    if re.findall("^[aA]\w+",x):
        filtered_text.update(x)


    print(filtered_text)

0
Rbcc 8 Июн 2021 в 23:07

3 ответа

Лучший ответ

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

import sys
import re

text = ['Python','can','be','easy','to','pick','up','whether','you', 'are', 'a', 'first', 'time', 'programmer', 'or', 'you', 'are', 'experienced', 'with', 'other', 'languages']
filtered_text={}

#----  to filter words that begin with a ----
for x in text:
    if x[0].lower() == 'a':
        if x not in filtered_text:
            filtered_text[x] = 0
        filtered_text[x] += 1
            

print(filtered_text)
0
Kazi Sohan 8 Июн 2021 в 20:26

Зачем к словарю? Слова, начинающиеся с «а», должны быть ключом или значением? если значение, какими должны быть ключи? Вот добавляю в список:

text = ['Python','can','be','easy','to','pick','up','whether','you', 'are', 'a', 'first', 'time', 'programmer', 'or', 'you', 'are', 'experienced', 'with', 'other', 'languages']
filtered_text=[]

for element in text:
    if element[0] == 'a':
        filtered_text.append(element) 

print(filtered_text)

Это то, что вы ищите? Если это результат, который вы ищете и вам нужны пояснения, просто дайте мне знать в комментариях.

1
IzabelaS 8 Июн 2021 в 20:13

Если вам нужен счетчик, вы можете использовать collections.Counter:

from collections import Counter

text = ['Python','can','be','easy','to','pick','up','whether','you', 'are', 'a', 'first', 'time', 'programmer', 'or', 'you', 'are', 'experienced', 'with', 'other', 'languages']

filtered_text = Counter([word for word in text if word[0].lower() == 'a'])

print(filtered_text)

Выход:

Counter({'are': 2, 'a': 1})
1
quamrana 8 Июн 2021 в 20:30