This here:
analise_eventos = list([f'{i} é ' for i in eventos_advesos])
analise_previsao = list([f'classificado como {e} ' for e in previsibilidades])
analise_descricao = list([f'e {a} segundo a bula.' for a in descricoes])
It doesn’t seem to make much sense. I see no reason to create 3 additional lists with the texts, then try to join them.
Even if it made sense, then you do it:
for i in analise_eventos:
evento = i
That is, every iteration of the loop, you overwrite the value of evento
. That’s why in the end this variable will only have the last value.
If the idea is just to print, you don’t need all this work. You can scroll through the lists simultaneously with zip
, and then just print the data in the desired format:
for evento, prev, desc in zip(eventos_advesos, previsibilidades, descricoes):
print(f'{evento} é classificado como {prev} e {desc} segundo a bula')
With each iteration of for
, the variables evento
, prev
and desc
will be one of the elements of the lists eventos_advesos
, previsibilidades
and descricoes
.
But if you really want to create a variable containing all the text, for all the elements, you can use join
along with a Generator Expression:
texto = '\n'.join( # separa os textos por "\n" (quebra de linha)
f'{evento} é classificado como {prev} e {desc} segundo a bula'
for evento, prev, desc in zip(eventos_advesos, previsibilidades, descricoes)
)
print(texto)
In case, I used \n
(line break), so the texts will be one in each line. But you can use the character you want - for example, if you do ', '.join(etc...)
, texts will be separated by comma and space.
Alternative to the 3 lists
But if the idea is to store related information (because I understood that each event has its respective predictability and description), a better option than having 3 lists is to have a single list, and group the information into one tuple:
dados = []
for i in range(qtd_eventos):
evento = input('Informe o evento adverso: ')
previsibilidade = input('Informe a previsibilidade em bula: ')
descricao = input('Informe se o evento é descrito em bula: ')
dados.append((evento, previsibilidade, descricao)) # insere uma tupla com as 3 informações
Note the additional parentheses, they are important. If I just:
dados.append(evento, previsibilidade, descricao)
This gives error because I am passing 3 parameters to append
. But by placing the additional parentheses, I’m creating a tuple containing the 3 values (evento
, previsibilidade
and descricao
) and insert this tuple into the list dados
.
Then just go through this list and get the values of each tuple:
for evento, prev, desc in dados:
print(f'{evento} é classificado como {prev} e {desc} segundo a bula')
# ou
texto = '\n'.join(
f'{evento} é classificado como {prev} e {desc} segundo a bula'
for evento, prev, desc in dados
)
print(texto)