如何在嵌套列表中查找接近数字的值

2024-09-28 22:03:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下列表结构:

 lista_peliculas = [{'titulo': 'Star Wars: A New Hope', 'estreno' : 1977, 'genero' : 'Sci-Fi', 'duracion' : 121}, 
                           {'titulo': 'Alien', 'estreno' : 1979, 'genero' : 'Sci-Fi', 'duracion' : 117},
                           {'titulo': 'The Next Karate Kid', 'estreno' : 1994, 'genero' : 'Drama', 'duracion' : 107},
                           {'titulo': 'The Terminator', 'estreno' : 1985, 'genero' : 'Sci-Fi', 'duracion' : 107}
        ]

我需要像上面那样输入电影的持续时间(以分钟为单位),并将其与字典中的“duracion”值进行比较,得到最接近的值

对于ex input_minutes=input(“输入要比较的持续时间:”) 我想打印我储存在最接近它的dicts列表中的数字,以及关于那部电影的其他信息。我不知道怎么做。非常感谢


Tags: the列表input电影结构fistar持续时间
2条回答

试着这样做:

myNumber = int(input("Enter duration: "))
print(min([x['duracion'] for x in lista_peliculas], key=lambda x:abs(x-myNumber)))

这将有助于您:

lista_peliculas = [{'titulo': 'Star Wars: A New Hope', 'estreno': 1977, 'genero': 'Sci-Fi', 'duracion': 121},
                   {'titulo': 'Alien', 'estreno': 1979, 'genero': 'Sci-Fi', 'duracion': 117},
                   {'titulo': 'The Next Karate Kid', 'estreno': 1994, 'genero': 'Drama', 'duracion': 107},
                   {'titulo': 'The Terminator', 'estreno': 1985, 'genero': 'Sci-Fi', 'duracion': 107}
                   ]

duration_lst = [dictionary['duracion'] for dictionary in lista_peliculas]

duration_inp = int(input("Enter duration"))

closest = duration_lst[min(range(len(duration_lst)), key = lambda i: abs(duration_lst[i]-duration_inp))]

[print(dictionary) for dictionary in lista_peliculas if dictionary['duracion'] == closest]

输出:

Enter duration>? 115
{'titulo': 'Alien', 'estreno': 1979, 'genero': 'Sci-Fi', 'duracion': 117}

相关问题 更多 >