Oii Dexter, como você está?
Peço desculpas pela demora em obter um retorno.
Por padrão, em todo código que fazemos o Python armazena uma tabela de símbolos com as informações pertinentes sobre aquele programa, onde isso inclui nomes de variáveis, classes, métodos, etc. Essas tabelas de símbolos são armazenadas em formato de dicionário, ou seja, um conjunto de chave e valor. Vamos a um exemplo, imagine o seguinte código:
a = 10
b = 20
print(a + b)
Simples, certo?! Apenas somamos dois valores que estão atribuídos as variáveis "a" e "b". E para vermos as variáveis, métodos ou classes presentes nesse código, podemos utilizar o método globals(), veja o que ele retorna:
a = 10
b = 20
print(a + b)
print(globals())
# Resultado
{
"__name__":"__main__",
"__doc__":"None",
"__package__":"None",
"__loader__":<_frozen_importlib_external.SourceFileLoader object at 0x000001D050762640>,
"__spec__":"None",
"__annotations__":{
},
"__builtins__":"<module""builtins""(built-in)>",
"__file__":".\\main1.py",
"__cached__":"None",
"a":10,
"b":20
}
Veja que ao chamarmos a função globals(), foi retornado as variáveis "a" e "b" e as mesmas estão em formato de dicionário.
Sendo assim, para criarmos uma variável dentro do laço for
dinamicamente podemos utilizar o globals(), adicionando a ele uma chave e atribuindo o valor. Veja abaixo um exemplo de código:
import random
variavel_discreta = ['primeira_lista', 'segunda_lista', 'terceira_lista', 'quarta_lista']
for variavel in variavel_discreta:
globals()[variavel] = random.sample(range(1, 10), 4)
# nome de uma das variáveis discreta
print(primeira_lista)
Porém, deve-se utilizar o globals() com cautela, pois ele modifica o escopo de informações criadas pelo próprio python a respeito do programa e além disso, variáveis que possuem escopo global dão brechas no código para que sejam acessíveis a partir de qualquer trecho, o que por vezes é indesejável.
Uma solução alternativa e que consiste em uma boa prática de programação é o uso de um dicionário, onde a chave será o nome da sua variável discreta e a lista o valor dessa variável, como mostro abaixo:
import random
variavel_discreta = ['primeira_lista', 'segunda_lista', 'terceira_lista', 'quarta_lista']
variaveis = {}
for variavel in variavel_discreta:
variaveis[variavel] = random.sample(range(1, 10), 4)
# nome de uma das variáveis discreta
print(variaveis['primeira_lista'])
Espero ter ajudado e qualquer dúvida estou por aqui.
Grande abraço!