首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fuzzywuzzy process.extract()没有返回列表

fuzzywuzzy process.extract()没有返回列表
EN

Stack Overflow用户
提问于 2021-06-11 11:55:06
回答 1查看 211关注 0票数 1

我是编程新手,在完成大学作业时,我遇到了fuzzywuzzy包中的process.extract()函数的问题。

documentation说函数应该返回一个列表,但是我的代码返回一个类类型为None的对象。

如果我打印process.extract(limit=1),它将返回类似于列表的内容:

代码语言:javascript
复制
[("Matching string","Fuzz Ratio", "Index")]

但是,我不能使用[]对此对象进行切片,因为它被归类为None

我需要能够获取匹配字符串的索引,所以我需要找出process.extract()没有返回列表的原因,或者如何从None对象中获取最后一个元素。

谢谢,如果需要任何澄清,请让我知道。

编辑:好的,我的坏人们,我会尽量说得更具体一些。

最小可重复性样本:

注意: CSV文件只有两列问题和答案,它来自我的大学,所以我不确定我是否被允许上传确切的文件,很抱歉。

好吧,奇怪的是,重新创建这个例子修复了它,但我还是不能说出发生了什么。

第一个示例取自我的原始代码:

代码语言:javascript
复制
import pandas as pd 
from fuzzywuzzy import fuzz
from fuzzywuzzy import process
df_chat_bot = pd.read_csv("ChatBot-short.csv")
str_user_question = input("Question: ")
test_var = print(process.extract(str_user_question, df_chat_bot["Question"], limit = 1))
print(type(test_var))

打印(类型(Test_var))行的输出是(直接从终端) "“。

然后,当我开始编写可重现的代码时:

代码语言:javascript
复制
from fuzzywuzzy import process
from fuzzywuzzy import fuzz
import pandas as pd  
test_user_question = "vsc"
df_chat_bot = pd.read_csv("ChatBot-short.csv")
temp_var = process.extract(test_user_question,df_chat_bot["Question"], limit = 1)
print(temp_var)
print(type(temp_var))

打印此类型的结果是"“

那么这是怎么回事呢?请注意,我注释掉了原始文件中的所有其他代码,因此此处粘贴的代码是唯一运行的代码。

EN

回答 1

Stack Overflow用户

发布于 2021-06-11 13:20:02

看到不同点:

你的代码:

代码语言:javascript
复制
test_var = print(process.extract(str_user_question, df_chat_bot["Question"], limit = 1))

测试代码:

代码语言:javascript
复制
temp_var =       process.extract(test_user_question,df_chat_bot["Question"], limit = 1)

在您的代码中,process.extract()包装在print()中。函数print()总是返回None并将其赋值给test_var,这就是为什么你会得到一个错误。当然,type(None)就是NoneType

如果您希望同时赋值和打印process.extract(...)的返回值,则必须在单独的语句中执行这两项操作,如第二个示例所示。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67931073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档