无法将String强制转换为List

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将String强制转换为List相关的知识,希望对你有一定的参考价值。

因为这里的错误消息我感到非常沮丧,并且无法弄清楚这么简单的代码出了什么问题:

secret_word_list = list('trang')

TypeError: 'tuple' object is not callable

secret_word_list是一个新变量。 “元组”类型来自哪里?此外,如果我将字符串分配给变量,我可以通过调用其名称将其转换为字符串。例如:

string = 'abc'
list = list(string)

我试过但是同样的错误信息不断弹出。

另外,我在Spyder写这篇文章。如果我在PythonTutor中写道,事情会顺利进行。

提前谢谢您的时间!

答案

问题是由于您正在隐藏Python的内置关键字:list

永远不要创建具有内置关键字名称的变量。

如果您选择另一个变量名,您的代码将完美运行:

>> string = 'abc'
>> my_list = list(string)
>> print(my_list)
['a', 'b', 'c']

我怀疑你得到了一个TypeError,因为你之前已经为一个名为list的变量分配了一个元组。

另一答案

以下是我在一个新的解释器中运行代码时的作用:

>>> secret_word_list = list('trang')
>>> secret_word_list
['t', 'r', 'a', 'n', 'g']
>>> 

换句话说,它表现得像预期的那样。如果你仔细看看你得到的错误,你就可以理解Python看到了一个元组被调用:

TypeError: 'tuple' object is not callable

唯一的电话是list。因此,list是一个元组。这只能意味着list已在你的代码中某处反弹。

你需要找到你写的东西

list = ...

并使用不同的名称而不是list

以上是关于无法将String强制转换为List的主要内容,如果未能解决你的问题,请参考以下文章

无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS

List<T> 上的 UISelectMany 导致 java.lang.ClassCastException:java.lang.String 无法强制转换为 T

无法将整数强制转换为android.support.design.widget.FloatingActionButton

java.lang.ClassCastException:java.util.ArrayList无法强制转换为java.lang.String,array [[file-1519428262786.p

如何解决 - 无法使用Automapper将Generic.List强制转换为Linq.IQueryable?

无法将NHibernate.Collection.Generic.PersistentGenericBag类型的对象强制转换为List