Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在元组列表中查找数字_Python - Fatal编程技术网

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字典。他们在那里就是为了这个目的