我正在学习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']