Soy nuevo en Python, así que me disculpo por usar cualquier terminología incorrectamente, pero estoy tratando de filtrar a través de una lista de palabras, luego agregar palabras que comienzan con "A" a un diccionario. Pero, tengo problemas para agregar los valores después de mi declaración IF al diccionario. Mi código es el siguiente;

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 jun. 2021 a las 23:07

3 respuestas

La mejor respuesta

No estoy seguro. Pero tal vez estés buscando esto? Almacena todas las palabras que comienzan con a en un diccionario con la palabra como una clave y cuentan como el valor.

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 jun. 2021 a las 20:26

¿Por qué a un diccionario? ¿Las palabras que comienzan con "A" deben ser una clave o valor? Si el valor, ¿qué quieres que quieras (s) clave (s)? Aquí estoy agregándolo a una lista:

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)

¿Es esto lo que estás buscando? Si esta es una salida que está buscando y necesita algunas explicaciones, hágamelo saber en los comentarios.

1
IzabelaS 8 jun. 2021 a las 20:13

Si desea un contador, entonces podría usar 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)

Salida:

Counter({'are': 2, 'a': 1})
1
quamrana 8 jun. 2021 a las 20:30