Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Função Remove

Como poderá ver no código abaixo e repeti várias vezes a funcão "cadastrar(nomes)" & "remover(nomes)", para ir um a um, cada nome, minhas tentantivas de fazer mais de um ao mesmo tempo, não deram certo! Como poderia ter inserido/removido todos os nomes de uma vez?? Desculpe se não é o tema nem o objetivo do programinha!! Foi um curiosidade! Obrigada!

>>> def cadastar(nomes):
...     print 'Digite o nome:'
...     nome = raw_input()
...     nomes.append(nome)
...
>>> nomes = []
>>> cadastar(nomes)
Digite o nome:
Catia
>>> cadastar(nomes)
Digite o nome:
Paulo
>>> cadastar(nomes)
Digite o nome:
Ana
>>> cadastar(nomes)
Digite o nome:
Rogerio
>>> cadastar(nomes)
Digite o nome:
Vitor
>>> cadastar(nomes)
Digite o nome:
Nico
>>> nomes
['Catia', 'Paulo', 'Ana', 'Rogerio', 'Vitor', 'Nico']
>>>
>>>
>>> def remover(nomes):
...     print 'Qual nome você gostaria de remover?'
...     nome = raw_input()
...     nomes.remove(nome)
...
>>> nomes
['Catia', 'Paulo', 'Ana', 'Rogerio', 'Vitor', 'Nico']
>>> remover(nomes)
Qual nome você gostaria de remover?
Vitor
>>> remover(nomes)
Qual nome você gostaria de remover?
Nico
>>> nomes
['Catia', 'Paulo', 'Ana', 'Rogerio']
>>>
3 respostas
solução!

Oi, Catia! Veja se é mais ou menos isso que você tá pensando :) -> para adicionar vários nomes de uma vez, podemos alterar um pouco a função cadastra() para dividir a entrada do usuário em uma lista e extender a lista original com essa, dessa forma:

>>> def cadastrar(nomes)
...     print('Digite os nomes separados por vírgula:')
...     novos_nomes_string = raw_input()
...     novos_nomes = novos_nomes_string.split(', ')
...     nomes.extend(novos_nomes)
...
>>> nomes = []
>>> cadastrar(nomes)
Digite os nomes separados por vírgula:
Catia, Yan, Ana, Paulo
>>> nomes
['Catia', 'Yan', 'Ana', 'Paulo']

Para remover podemos seguir uma lógica parecida, mas adicionando um for dentro da função:

>>> def remover(nomes):
...     print('Quais nomes você deseja remover?')
...     nomes_remover = raw_input().split(', ')
...     for nome in nomes_remover:
...         nomes.remove(nome)
...
>>> nomes
['Catia', 'Yan', 'Ana', 'Paulo']
>>> remover(nomes)
Quais nomes você deseja remover?
Paulo, Yan
>>> nomes
['Catia', 'Ana']

Espero que tenha ajudado :-)! Abraços e bons estudos

Catia,

No Python2, para remover todos os nomes da lista, o jeito mais fácil vc pode, recriar a lista vazia:

nomes = []

No Python 3, vc pode usar a função clear() que remove todos elementos da lista. A palavra Clear do Inglês, significa limpar, limpeza, logo, é essa a ação feita sobre uma lista que contém elementos.

No código a seguir, vamos criar uma lista cuja referência será C e os elementos será a junção dos elementos da lista A e B.

coding: utf-8
>>> A = ['a','b','c']
>>> B = ['d','e','f']

>>> C = A + B
>>> C
['a','b','c','d','e','f']

>>> C.clear()
>>> C
[]

Criei uma lista de nome C que contém os elementos de A e B e imprimimo-os na tela. Em seguida, invocamos a função clear() da lista C e mandamos imprimir os elementos na tela. Como pode ser visto, foi impresso somente um par de colchetes [], representando assim, uma lista vazia.

obrigada