TypeError:“float”对象在内置max函数的列表中不可编辑

2024-06-01 00:09:58 发布

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

我试图找到一个最接近的电影标题给一个实际的电影标题使用max函数及其关键参数。 如果我定义一个示例列表并测试它的功能。。。在

from difflib import SequenceMatcher as SM
movies = ['fake movie title', 'faker movie title', 'shaun died']
approx_title = 'Shaun of the Dead.'
max(movies, key = lambda title: SM(None, approx_title, title).ratio())
'shaun died'

但是我试图在一个单独的数据帧中匹配整个列,所以我尝试将熊猫系列转换为一个列表并运行相同的函数,但是我得到了一个type\u错误,尽管我已经检查了两个movies和movie_lst are list的数据类型。在

^{pr2}$

我不明白为什么-任何帮助都将不胜感激!在


Tags: 函数标题列表参数电影定义titlemovies
1条回答
网友
1楼 · 发布于 2024-06-01 00:09:58

{1{这是不可能的,{1}这是不可能的,{1}这取决于一个<1}的数据的,因为这是不可能的

一个好的解决方法是将数据强制为字符串,如下所示:

movie_lst = [str(x) for x in movie_lst]

如果字符串已经是字符串(Should I avoid converting to a string if a value is already a string?),则它不会创建这些字符串的副本,因此效率很高,而且您肯定只能得到字符串。在

请注意,您可以通过打印以下内容找到违规者:

^{pr2}$

相关问题 更多 >