按名称删除 Python 数组元素

在 Python 数组中,我需要知道(如果可能的话)如何按名称删除数组元素,而不知道数组中元素的索引。

所以,如果我定义了这个数组

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

然后我们将有三个数组元素。
比利鲍勃苹果
然后如果我有这个代码

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

我需要知道如何按名称删除数组中的元素。
例如,如果用户输入了“Billy”,而程序不知道 Billy 在数组中的索引,我们如何从数组中删除 Billy,只知道它的名字?

stack overflow Remove a Python array element by name
原文答案
author avatar

接受的答案

你也可以使用 remove

usernames = ["Billy", "Bob", "Apple"]
if "Billy" in usernames:
    usernames.remove("Billy")
# usernames = ["Bob", "Apple"]

答案:

作者头像

您可以使用 remove() 方法删除元素。在尝试删除它之前,请检查列表中是否存在所需的元素,因为如果列表中不存在该元素,则会增加 ValueError

if to_delete in usernames:
  usernames.remove(to_delete)
作者头像
if to_delete in usernames:
    usernames.pop(usernames.index(to_delete))

基本上就是这样。

作者头像
def remove_by_name(name):
    if name in usernames:
        usernames.remove(name)

仅删除第一次出现,如果您想要所有元素,请修改上面的示例。

作者头像

您可以使用remove函数 array.remove(value) 或使用索引 array.index(value) 函数并获取特定值的索引,并使用 del array[x] 将其删除。

arr=['Billy', 'Bob', 'Apple']
arr.remove('Bob')
print(arr) #['Billy', 'Apple'] 

#OR you can use 

indexValue = arr.index('Billy')
del arr[indexValue]
print(arr) #['Bob', 'Apple']