En una matriz de Python, necesito saber ( si es posible ) cómo eliminar un elemento de la matriz por su nombre, sin conocer el índice del elemento en la matriz.

Entonces, si tuviera esta matriz definida

usernames = ["Billy", "Bob", "Apple"]

Entonces tendríamos tres elementos de matriz.
Billy , Bob y Apple .
Y luego si tuviera este código

# Deleting the element
def delete_username():
    to_delete = raw_input("Username to remove:")
    # (Code to delete by element name)

Necesito saber cómo eliminar el elemento en la matriz por su nombre.
Por ejemplo, si el usuario ingresó "Billy" y el programa no conocía el índice de Billy en la matriz, ¿cómo eliminaríamos a Billy de la matriz, solo sabiendo su nombre?

2
MysteryBlokHed 7 jun. 2016 a las 20:58

4 respuestas

La mejor respuesta

También puedes usar remove

usernames = ["Billy", "Bob", "Apple"]
if "Billy" in usernames:
    usernames.remove("Billy")
# usernames = ["Bob", "Apple"]
5
Greg 7 jun. 2016 a las 18:09

Puede usar el método remove() para eliminar el elemento. Compruebe si el elemento requerido está presente en la lista antes de intentar eliminarlo ya que se genera un ValueError si el elemento no está presente en la lista.

if to_delete in usernames:
  usernames.remove(to_delete)
4
gaganso 8 jun. 2016 a las 03:49
if to_delete in usernames:
    usernames.pop(usernames.index(to_delete))

Eso es todo básicamente.

0
Philip Feldmann 7 jun. 2016 a las 18:00
def remove_by_name(name):
    if name in usernames:
        usernames.remove(name)

Elimine solo la primera aparición, si desea todos los elementos, modifique la muestra anterior.

0
frodrigues 7 jun. 2016 a las 18:11