Skip to content

Instantly share code, notes, and snippets.

@Marceloromeugoncalves
Last active March 8, 2023 13:24
Show Gist options
  • Save Marceloromeugoncalves/ec32a565902f49b553ed92299fbf4e33 to your computer and use it in GitHub Desktop.
Save Marceloromeugoncalves/ec32a565902f49b553ed92299fbf4e33 to your computer and use it in GitHub Desktop.
Exemplo namedtuple.
from collections import namedtuple
Local = namedtuple('Local', ['nome', 'latitude', 'longitude'])
locais = [
Local('Estátua da Liberdade, Nova York, EUA', 40.6892, -74.0445),
Local('Torre Eiffel, Paris, França', 48.8584, 2.2945),
Local('Opera House, Sydney, Austrália', -33.8568, 151.2153),
Local('Cristo Redentor, Rio de Janeiro, Brasil', -22.9519, -43.2105),
Local('Pirâmides de Gizé, Cairo, Egito', 29.9792, 31.1342),
Local('Monte Everest, Himalaia, Nepal', 27.9881, 86.9250),
Local('Grande Muralha da China, China', 40.4319, 116.5704),
Local('Coliseu, Roma, Itália', 41.8902, 12.4922),
Local('Taj Mahal, Agra, Índia', 27.1750, 78.0422),
Local('Machu Picchu, Cusco, Peru', -13.1631, -72.5450),
]
for local in locais:
array_local = local[0].split(',')
if len(array_local) == 2:
nome_local = array_local[0].strip()
pais = array_local[1].strip()
if len(array_local) == 3:
nome_local = array_local[0].strip()
cidade = array_local[1].strip()
pais = array_local[2].strip()
latitude = local[1]
longitude = local[2]
tupla_lat_long = (latitude, longitude)
print(f'Local: {nome_local}')
print(f'País: {pais}')
print(f'Cidade: {cidade}')
print(f'Latitude: {latitude}')
print(f'Longitude: {longitude}')
print(f'Tupla Lat Long: {tupla_lat_long}')
print(10 * '-')
@Marceloromeugoncalves
Copy link
Author

Marceloromeugoncalves commented Mar 8, 2023

Uma namedtuple é um tipo de classe em Python que é semelhante a uma tupla, mas com a vantagem de que cada elemento pode ser acessado por um nome, em vez de apenas por um índice. Ela é uma subclasse de tuple e pode ser definida usando a função collections.namedtuple(), que aceita dois argumentos: um nome para a classe e uma string com os nomes dos campos separados por espaços ou vírgulas.

Por exemplo, a definição de uma namedtuple Pessoa com os campos nome, idade e sexo seria:

from collections import namedtuple

Pessoa = namedtuple('Pessoa', ['nome', 'idade', 'sexo'])

Isso cria uma nova classe chamada Pessoa, que pode ser usada para criar objetos que têm atributos com nomes específicos, como:

p1 = Pessoa('João', 25, 'M')
print(p1.nome) # João
print(p1.idade) # 25
print(p1.sexo) # M

Uma namedtuple é imutável como uma tupla, o que significa que seus valores não podem ser alterados depois de criados.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment