Python 在元组列表中查找数字
假设有一个函数Python 在元组列表中查找数字,python,Python,假设有一个函数get_number(directory,person),返回此人的电话号码。如果找不到号码,则返回0 def make_directory(): return [] def add_number(directory, person, number): directory.append((person,number)) print(str(person) + ' ' +'added!') return(directory) def get_nu
get_number(directory,person)
,返回此人的电话号码。如果找不到号码,则返回0
def make_directory():
return []
def add_number(directory, person, number):
directory.append((person,number))
print(str(person) + ' ' +'added!')
return(directory)
def get_number(directory, person):
if person == directory[0][0]:
return directory[0][1]
elif len(directory) >= 1:
return get_number(directory[1:],person)
else:
return 0
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')) # I should be getting 1123
print_list(phonebook) #[('Police', 999), ('Lynna', 8444), ('Jack', 1123), ('Sister', 5720)]
但是我不能得到它。我可以知道问题出在哪里吗?因为您正在比较姓名和号码。你应该做的是
if person == directory[0][0]:
此外,如果目录
中首先有足够的值,则条件应为。所以,情况会变成这样
if len(directory) >= 1:
return 0
elif person == directory[0][1]:
return directory[0][1]
else:
return get_number(directory[1:], person)
注意:我建议在这里使用Python字典。它们就是为了这个目的而存在的。因为,您正在将名称与数字进行比较。你应该做的是
if person == directory[0][0]:
此外,如果目录
中首先有足够的值,则条件应为。所以,情况会变成这样
if len(directory) >= 1:
return 0
elif person == directory[0][1]:
return directory[0][1]
else:
return get_number(directory[1:], person)
注意:我建议在这里使用Python字典。他们在那里就是为了这个目的