def create_tfidf_dictionary(x, transformed_file, features):
vector_coo = transformed_file[x.name].tocoo()
vector_coo.col = features.iloc[vector_coo.col].values
dict_from_coo = dict(zip(vector_coo.col, vector_coo.data))
return dict_from_coo
def replace_tfidf_words(x, transformed_file, features):
dictionary = create_tfidf_dictionary(x, transformed_file, features)
return list(map(lambda y:dictionary[f'{y}'], x.title.split()))
%%time
replaced_tfidf_scores = file_weighting.apply(lambda x: replace_tfidf_words(x, transformed, features), axis=1)
运行此代码时,出现以下错误。
TypeError跟踪(最近的呼叫 最后)
〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ frame.py在apply(self, func,axis,broadcast,raw,reduce,result_type,args,** kwds)6911 kwds = kwds,6912) -> 6913 return op.get_result()6914 6915 def applymap(self,func):
〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py在get_result()中 184返回self.apply_raw() 185 -> 186返回self.apply_standard() 187 188 def apply_empty_result():
〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py在 apply_standard(个体) 290 291#使用系列生成器计算结果 -> 292 self.apply_series_generator() 293 294#包装结果
〜\ Anaconda3 \ lib \ site-packages \ pandas \ core \ apply.py在 apply_series_generator(个体) 319尝试: i,v中的320枚举(series_gen): -> 321个结果[i] = self.f(v) 322个key.append(v.name) 323例外,例如e:
in(x) 在replace_tfidf_words(x, transformd_file,功能) 24''' 25字典= create_tfidf_dictionary(x,transformd_file,features) ---> 26个返回列表(map(lambda y:dictionary [f'{y}'],x.title.split()))
TypeError :(“'list'对象不可调用”,“发生在索引0”)
我是python的新手,请帮助我解决此错误。
答案 0 :(得分:1)
这是一个常见错误,通常会在为名为import React from 'react';
import { Authenticator, ConfirmSignIn, SignIn } from 'aws-amplify-react';
import Amplify, { Auth } from 'aws-amplify';
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);
const getSearchParams = () =>
window.location.search.substr(1);
const getValueFromSearchParam = (key) =>
new URLSearchParams(getSearchParams()).get(key);
const getRedirectUri = () => {
const redirect_uri = getValueFromSearchParam('redirect_uri');
return redirect_uri ? decodeURI(redirect_uri) : null;
};
const Login = () => {
const handleAuthStateChange = (state) => {
if(state === 'signedIn') {
const redirect_uri = getRedirectUri();
const state = getValueFromSearchParam('state');
if(redirect_uri === null) {
throw new Error('No redirect_uri provided');
}
Auth.currentSession().then(currentSession => {
const id_token = currentSession.idToken.jwtToken;
const access_token = currentSession.accessToken.jwtToken;
const redirect = `${redirect_uri}#access_token=${access_token}&id_token=${id_token}&state=${state}`;
window.location.replace(redirect);
}).catch(err => console.error(err));
}
};
return (
<Authenticator
hideDefault={true}
onStateChange={handleAuthStateChange}
>
<SignIn />
<ConfirmSignIn/>
</Authenticator>
);
};
的变量设置一些值时发生。考虑下面的代码:
list
在第一行,我们为名为list = [1+1, 2-4, 3*2]
values = list(1)
的变量分配一个值。那是很直观的,因为,如果我们有一个 list ,为什么不将其放在名为list
的变量中,对吗?但是,在第二行,我们尝试调用函数list
。但是,我们替换了变量list()
的值,它不再是函数,而是其他东西。结果是错误:
list
在您的示例中,很明显,您尝试在此行调用该函数:
Traceback (most recent call last):
File "sl.py", line 3, in <module>
values = list(1)
TypeError: 'list' object is not callable
挑战在于找到将值分配给return list(map(lambda y:dictionary[f'{y}'], x.title.split()))
变量的位置。正如有人评论的那样,您可以在代码中寻找list
子字符串,并在其中更改变量名,以代替list =
。如果您在任何地方都找不到此代码段,则可以替换
list
作者
return list(map(lambda y:dictionary[f'{y}'], x.title.split()))
它将显示您在print(list)
变量上具有的值,并可以帮助您确定更改的位置。
无论哪种方式,您都必须在已发布给我们的摘录之外进行搜索,这可能是一个挑战。