按名称删除Python数组元素
在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,只知道它的名字?
您还可以使用remove
usernames = ["Billy", "Bob", "Apple"]
if "Billy" in usernames:
usernames.remove("Billy")
# usernames = ["Bob", "Apple"]
if to_delete in usernames:
usernames.pop(usernames.index(to_delete))
就是这样。
为什么不使用'remove'? – idjaw
我以为删除也把一个索引作为参数@idjaw。猜猜我错了。无论如何,这个工作,格雷格的方法是更优雅的。 –
您可以使用remove()
方法来删除元素。在尝试删除之前检查列表中是否存在所需的元素,因为如果该元素不在列表中,则引发ValueError
。
if to_delete in usernames:
usernames.remove(to_delete)
@AshishAhujaツ,我已经编辑了答案。我会记住这一点,谢谢:) – SilentMonk
@cpburnz,谢谢。我已经删除了不必要的休息。 – SilentMonk
@SilentMonk谢谢你这么做。现在答案好多了。 –
def remove_by_name(name):
if name in usernames:
usernames.remove(name)
仅删除第一次出现,如果你想要的所有元素,上述修改示例。
额外布朗尼指向显示当项目不在列表中时会出现的'ValueError'的处理。 – idjaw
布朗尼点从idjaw?你让我今天很开心! – Greg
\ o /最佳点数! – idjaw