这是我的密码
def make_directory():
return []
def get_number(directory, person):
a = dict(directory)
if person in a:
return a[person]
else:
return 0
def add_number(directory, person, number):
directory.append((person,number))
return(str(person) + ' ' +'added!')
def del_number(directory, person):
a = dict(directory)
if person in a:
del a[person]
return (str(person) + ' ' +'deleted!')
else:
return 'Not found!'
def print_list(directory):
print(directory)
phonebook = make_directory()
add_number(phonebook, 'Police', 999)
add_number(phonebook, 'Lynna', 8444)
add_number(phonebook, 'Jack', 1123)
add_number(phonebook, 'Sister', 5720)
print(get_number(phonebook, 'Jack'))
print(add_number(phonebook, 'Alex', 6346))
print(del_number(phonebook, 'Alex'))
当我尝试print(print_list(phonebook))
时,我得到的是[('Police', 999), ('Lynna', 8444), ('Jack', 1123), ('Sister', 5720), ('Alex', 6346)]
,而不是[('Jack', 1123), ('Lynna', 8444), ('Police', 999), ('Sister', 5720)]
。你知道吗
为什么del_number()
函数调用没有删除'Alex'
?你知道吗
您的
del_number()
函数将列表转换为字典,然后仅从该字典中删除此人,原始directory
列表不受影响:您需要改为
directory
;找到号码后可以使用list.remove()
:如果你的
directory
是一本字典,那么做起来就容易多了:并删除其他函数中的
dict()
调用:然后,使用字典可以执行以下操作:
例如,如果在字典中找不到
person
,则返回默认值。你知道吗相关问题 更多 >
编程相关推荐