Python列表和类型错误

Python列表和类型错误,python,list,exception,types,Python,List,Exception,Types,我已经用Python编写了以下代码: if type(data).__name__=='list': print type(data).__name__ print ",".join(data) 它给了我这个错误: print ",".join(data) exceptions.TypeError: sequence item 0: expected string, list found 这怎么可能 提前感谢您的帮助。数

我已经用Python编写了以下代码:

if type(data).__name__=='list':
                print type(data).__name__
                print ",".join(data)
它给了我这个错误:

    print ",".join(data)
exceptions.TypeError: sequence item 0: expected string, list found
这怎么可能


提前感谢您的帮助。

数据的第一个元素是
列表。它必须是一个字符串,才能使
str.join()
如图所示工作。事实上,所有元素都必须。

数据的第一个元素是
列表。它必须是一个字符串,才能使
str.join()
如图所示工作。实际上,所有元素都必须连接。

str.join()
只能连接字符串序列。显然,您的列表中包含的项目本身又是一个列表

此外,如果确实需要检查对象的类型,更好的方法是

if isinstance(data, list):
    ...
str.join()
只能连接字符串序列。显然,您的列表中包含的项目本身又是一个列表

此外,如果确实需要检查对象的类型,更好的方法是

if isinstance(data, list):
    ...

不要显式检查类型。如果您确实需要,请使用


出现错误的原因是
数据的内容而不是其类型。它需要是
str.join
方法使用的字符串列表

不要显式检查类型。如果您确实需要,请使用


出现错误的原因是
数据的内容而不是其类型。它需要是
str.join
方法使用的字符串列表

列表的第一个元素也是列表,而不是字符串

此外,您不必执行
类型(数据)。\uuu name\uuu==“list”
-只需
类型(数据)就是list


甚至更好-只需检查
isinstance
,因为在大多数情况下,您并不真正关心特定的类型。

列表的第一个元素也是列表,而不是字符串

此外,您不必执行
类型(数据)。\uuu name\uuu==“list”
-只需
类型(数据)就是list


甚至更好-只需检查
isinstance
,因为在大多数情况下,您并不真正关心特定类型。

join
需要大量字符串。在您的例子中,似乎发生的是列表的第一个元素是另一个列表。这就是导致错误的原因


另一方面,
if type(data)。\uu name\uuu=='list':…
与代码一样不符合Pythonic。

join
需要一个字符串的iterable。在您的例子中,似乎发生的是列表的第一个元素是另一个列表。这就是导致错误的原因


另一方面,
if类型(数据)。\uuu name\uuu=='list':…
与代码一样不符合Pythonic。

您似乎有一个列表。尝试:

",".join(str(x) for x in data)

您似乎有一个列表列表。尝试:

",".join(str(x) for x in data)

s/甚至更好-.*/甚至更好-根本不检查类型。
;)
s/甚至更好-.*/甚至更好-根本不检查类型。//
;)是 啊我好笨。。。我的列表包含一些要。。。很抱歉打扰大家。不过还是要谢谢你给我的提示是的。。。我好笨。。。我的列表包含一些要。。。很抱歉打扰大家。不过还是要谢谢你给我关于iInstance的提示