exemplo_tupla = ('Hugo', [38, 'Fluminense']) print(id(exemplo_tupla), id(exemplo_tupla[0]), id(exemplo_tupla[1])) # NÃO POSSO # exemplo_tupla.append('O+') # exemplo_tupla[-1] = 'O+' # MAS POSSO... Porque não é mutação na TUPLA, e sim na LISTA dentro dela exemplo_tupla[-1].append('O+') print(id(exemplo_tupla), id(exemplo_tupla[0]), id(exemplo_tupla[1])) def função_exemplo_1(): return 2 def função_exemplo_2(): print(2) nome = 'Hugo Nobrega'.rjust(30, '_') nome_completo = 'Hugo de Holanda Cunha Nobrega' nomes = nome_completo.split() novo_nome = '_'.join(nomes) # Equivalente: # novo_nome = str.join('_',nomes) # EXEMPLO: fazer um função que recebe o nome completo de alguém # e retorna a versão "em ordem alfabética" do nome (com os nomes em ordem) def ordena_nome(nome): """ Recebe o nome completo de alguém e retorna a versão 'em ordem alfabética' do nome (com os nomes em ordem) """ componentes = nome.split() # fim da Etapa 1 componentes.sort(key = str.lower) # fim da Etapa 2 -- é uma MUTAÇÃO da lista componentes! # componentes.sort(key = ordem_dos_nomes) # fim da Etapa 2 -- é uma MUTAÇÃO da lista componentes! # componentes.sort(key = len) # fim da Etapa 2 -- é uma MUTAÇÃO da lista componentes! return str.join(' ', componentes) # fim da Etapa 3 e do exercício tupla_de_nomes = ('Hugo', 'Bernardo', 'de', 'Francisco', 'Holanda', 'Nobrega', 'Cunha', 'Charles', 'Silva') def ordem_dos_nomes(nome): """ Recebe um nome e retorna sua posição na tupla de nomes, ou um número enorme caso não esteja lá """ if nome in tupla_de_nomes: return tupla_de_nomes.index(nome) return 999999999999999999999 # ASSUNTO EXTRA: notação lambda fun = lambda argumento: 5*argumento # é equivalente a def fun(argumento): return 5*argumento # EXEMPLO: ordernar uma lista de números (reais) por seus quadrados def ordena_por_quadrado (lista_de_números): """ Retorna uma cópia ordernada da lista de números (reais) dada por seus quadrados. """ cópia = lista_de_números.copy() cópia.sort(key = lambda x: x**2) # cópia.sort(key = quadrado) return cópia def quadrado(x): return x**2 # Mais um exemplo: D = {'Matheus':3, 'Leonardo':4, 'Vitória':10, 'Hugo':1} # quero uma lista das chaves na ordem dos valores! lista_de_chaves = list(D.keys()) lista_de_chaves.sort(key = D.get) outra_lista = ['Leonardo', 'Hugo', 'Vitória', 'Matheus', 'Arthur', 'Naju'] # quero ordenar usando o valor correspondente no dicionário, se existir; # senão, o elemento deve ir pro começo da lista outra_lista.sort(key = lambda chave: D.get(chave, float('-inf'))) outra_lista.insert(2, 'Maria Eduarda') # REMOÇÃO DE LISTA # pelo índice: del del(outra_lista[2]) del(outra_lista[-1]) # também serve para dicionário! del(D['Hugo']) # ou usando pop, que também retorna o valor removido print(outra_lista) último = outra_lista.pop() # pelo valor: função remove lista = ['a','b','c','b','d','a'] lista.remove('b') # lista == ['a','c','b','d','a']