Como converter uma lista em um conjunto em Python

click fraud protection
Homem de negócios usando laptop no escritório

Você pode converter uma lista em um conjunto em Python.

Crédito da imagem: Poike / iStock / GettyImages

Listas e conjuntos em Python contêm grupos de itens, mas existem diferenças importantes entre os dois. Em particular, os conjuntos são úteis para realizar uma ampla gama de operações, como uniões e cruzamentos, enquanto as listas têm menos operações matemáticas, mas são úteis para pesquisar itens específicos - especialmente com duplicatas - e organizar dados. Por muitos motivos, pode ser necessário converter uma lista em um conjunto em Python, e há uma função simples que você pode usar para fazer isso.

Listas e conjuntos de Python explicados

A diferença mais importante entre uma lista e um conjunto em Python é que uma lista pode conter elementos duplicados, enquanto um conjunto contém apenas elementos únicos. Por exemplo, se você tiver uma lista de pontuações de testes definidas como "pontuações = [14, 20, 13, 20, 15]," a lista diz a você cada valor, mas se você convertê-lo em um conjunto, ele remove a duplicata e deixa {14, 20, 13, 15}.

Vídeo do dia

Outra diferença é que colchetes são usados ​​para listas, enquanto colchetes são usados ​​para conjuntos. As coisas ficam um pouco complicadas pelo fato de que um dicionário Python também usa chaves, mas lá cada item consiste no próprio valor e em uma "chave" separada por dois pontos.

É importante lembrar que você pode usar strings, inteiros, floats ou outros objetos como parte de um conjunto ou lista, e eles também podem ser misturados no mesmo conjunto ou lista. Portanto, assim como você pode ter um conjunto de números em Python, também pode construir um conjunto de strings em Python.

Converter uma lista em um conjunto

O processo de conversão de uma lista em um conjunto em Python é direto. Primeiro, você define a lista de uma forma que faça sentido para as informações nela contidas. Por exemplo, digamos que você queira definir uma lista de nomes, você pode escrever nomes = ['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah'] observando os colchetes, aspas ao redor das strings (os nomes) e vírgulas separando cada entrada.

Para converter esta lista em um conjunto, você usa o comando definir(), onde você coloca o nome da lista que deseja converter entre parênteses. Então, neste caso, você pode escrever conjunto (nomes) para converter os nomes da lista em um conjunto, e você pode atribuir a ele uma variável como "uniquenames" e exibir o resultado usando imprimir (uniquenames), que é funcionalmente equivalente a imprimir (definir (nomes)) mas mais puro. Você confirma que isso foi feito corretamente observando que o resultado usa chaves e "Mike" é incluído apenas uma vez.

Todo o código se parece com isto:

nomes = ['Lee', 'Mike', 'Jamie', 'Mike', 'Sarah']

uniquenames = set (nomes)

imprimir ('Nomes exclusivos:', uniquenames)

Nesse caso, "Nomes exclusivos:" foi adicionado à saída para fins de apresentação.

Python: Definir para conversão de lista

Você também pode executar a mesma conversão na direção oposta, e o processo é basicamente o mesmo, exceto que você usa o Lista() comando em um conjunto e não o contrário. Isso significa que você precisa de um conjunto para começar, que você pode definir facilmente escolhendo uma variável como "big_set" e, em seguida, adicionando o conteúdo, separado por vírgulas e entre colchetes. Você poderia escrever big_set = {1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17} para definir um conjunto de inteiros ou quaisquer outros valores.

Para converter isso em uma lista, você define uma variável (digamos, "big_list") e usa o Lista() comando, então você digita algo como big_list = list (big_set) e então imprimir (big_list) para exibir o resultado. Portanto, o código completo é:

big_set = {1, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 17}

big_list = list (big_set)

imprimir (big_list)

Este caso não dá um nome à lista, portanto, apenas retorna a lista. Observe que, se você converter uma lista em um conjunto e, em seguida, voltar novamente, perderá todos os valores repetidos na primeira conversão e eles não voltarão.