首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于列表中的keywords=,"TypeError:' list‘object is not callable“

对于列表中的keywords=,"TypeError:' list‘object is not callable“
EN

Stack Overflow用户
提问于 2021-09-24 16:53:44
回答 2查看 49关注 0票数 0

在发布我的代码之前,我将放一个非常简单的例子来说明我要做的事情

示例1:这是我想要完成的(但是在列表中包含关键字)

代码语言:javascript
复制
print("hi", end="****")
output: hi ****

示例2:这是我所能做到的

代码语言:javascript
复制
keyword = end="****"
print("hi", keyword)
output: hi ****

示例2:这就是它失败的地方

代码语言:javascript
复制
keywords = ['spam', end="****"]
print("hi", keywords[1])

output: keywords = ['spam', end="****"]
                               ^
SyntaxError: invalid syntax

示例2.1:这就是它失败的地方(在类似但不同的方法上)

尽管,这是可行的

代码语言:javascript
复制
keyword = end="****"
keywords = ['spam', keyword]
print("hi", keywords[1])
output: hi ****

这个不起作用:

代码语言:javascript
复制
keyword = sep="^^^^", end="****"
keywords = ['spam', keyword]
print("hi", keywords[1])

output: keyword = sep="^^^^", end="****"
                     ^
    SyntaxError: can't assign to literal

这是我的代码:

代码语言:javascript
复制
from sklearn.linear_model import LogisticRegression 
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

LogisticRegression_args = None
KNeighborsClassifier_args = n_neighbors=5
GaussianNB_args = None
DecisionTreeClassifier_args = criterion='entropy'
SVC_args = kernel='linear'
SVC_non_linear_args = kernel='rgb'
RandomForestClassifier_args = criterion='entropy', n_estimators=10, random_state=0

basic_classifier_models = [[[LogisticRegression], [LogisticRegression_args], ['LogisticRegression:']], [[KNeighborsClassifier], [KNeighborsClassifier_args], ['KNeighborsClassifier:']],
                           [[GaussianNB], [GaussianNB_args], ['GaussianNB:']], [[DecisionTreeClassifier], [DecisionTreeClassifier_args], ['DecisionTreeClassifier:']],
                           [[SVC], [SVC_args], ['SVC:']], [[SVC], [SVC_non_linear_args], ['Non_linear SVC:']],
                           [[RandomForestClassifier], [RandomForestClassifier_args], ['RandomForestClassifier:']]]

output: RandomForestClassifier_args = criterion='entropy', n_estimators=10, random_state=0
                                               ^
SyntaxError: can't assign to literal
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-24 17:07:55

keyword = end="****"设置了两个变量。keyword = "****"end = "****"。它不会做你认为它做的事情。第二个示例打印它所做的事情,因为它等同于调用print("hi", "****")

要指定参数而不在函数调用中实际编写它们,可以通过argument unpacking来完成。

通过解压列表来指定位置参数,如下所示:

代码语言:javascript
复制
args = ['a', 'b', 'c']
print(*args)
# Output: a b c 

或者,对于关键字args,您可以像这样解压字典:

代码语言:javascript
复制
kwargs = { "end": "****\n" }
print("abc", **kwargs)
Output: abc****

你甚至可以同时做这两件事:

代码语言:javascript
复制
args = ["hello", "world"]
kwargs = { "sep": "|", "end": "***\n" }
print(*args, **kwargs)
# Equivalent to print("hello", "world", sep="|", end="***\n")
# Output: hello|world***
票数 1
EN

Stack Overflow用户

发布于 2021-09-24 16:58:05

不能在列表中定义变量。下面是如何让这个函数工作的方法(假设我没看错)

代码语言:javascript
复制
keywords = ['spam', "****"]
print("hi", keywords[1])

如果你试图在一个序列中找到一个单词,我假设这就是我想要完成的,你可以通过执行下面的for循环来轻松实现:

代码语言:javascript
复制
check = "hi"
for item in keywords:
    if check.find(item) != -1:
        print("keyword found in input")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69318668

复制
相关文章

相似问题

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