如何用python编写一个删除列表元素的函数



我正在学习python,我必须做的练习之一是创建一个deletePerson函数,从列表中删除任何给定的人,并返回一个没有该人姓名的新列表。

这是我到目前为止的代码:

people = ['juan','ana','michelle','daniella','stefany','lucy','barak',"emilio"] 
def deletePerson(person_name):
new_people = []
for i in range(0, len(people)):
if people.index(person_name):
new_people = people.remove(person_name)
return new_people
print(deletePerson("daniella"))
print(deletePerson("juan"))
print(deletePerson("emilio"))

到目前为止,这段代码返回"None"

我也试过这个:

people = ['juan','ana','michelle','daniella','stefany','lucy','barak',"emilio"] 
#Your code go here:
def deletePerson(person_name):
new_people = []
for i in range(0, len(people)):
if person_name in people:
new_people = people.remove(person_name)
return new_people
print(deletePerson("daniella"))
print(deletePerson("juan"))
print(deletePerson("emilio"))

也返回"None">

我知道我的代码可能是完全错误的,但这就是我到目前为止得到的。

我尝试使用index()查找person_name,然后使用remove(),然后将结果附加到new_people。

Also tried: if person_name in people:

我想要的是,当我调用函数时,我传递给它一个人名,它从列表中删除它,并返回没有删除名字的新列表。

代码的固定版本。这将始终返回您的people列表,如果在列表中找到该名称,则删除该名称。

people = ['juan','ana','michelle','daniella','stefany','lucy','barak',"emilio"] 
def deletePerson(person_name):
if person_name in people:
people.remove(person_name)
return people
print(deletePerson("daniella"))
print(deletePerson("juan"))
print(deletePerson("emilio"))
print(people)

输出:

['juan', 'ana', 'michelle', 'stefany', 'lucy', 'barak', 'emilio']
['ana', 'michelle', 'stefany', 'lucy', 'barak', 'emilio']
['ana', 'michelle', 'stefany', 'lucy', 'barak']
['ana', 'michelle', 'stefany', 'lucy', 'barak']

如果您不想从原来的people列表中删除name,您可以在应用remove之前将其copy
示例:

def deletePerson(person_name):
new_list = people.copy()
if person_name in new_list:
new_list.remove(person_name)
return new_list

print("This is new list") 
print(deletePerson("daniella"))
print("This is original list") 
print(people) 

输出:

This is new list
['juan', 'ana', 'michelle', 'stefany', 'lucy', 'barak', 'emilio']
This is original list
['juan', 'ana', 'michelle', 'daniella', 'stefany', 'lucy', 'barak', 'emilio']

最新更新