【发布时间】:2015-10-31 16:04:07
【问题描述】:
a=(3)
b=list(a)
typeError: 'int' 对象不可迭代
但是
a=[3]
b=tuple(a)
c=list(b)
运行没有错误。
请解释一下。
【问题讨论】:
标签: python list tuples typeerror
a=(3)
b=list(a)
typeError: 'int' 对象不可迭代
但是
a=[3]
b=tuple(a)
c=list(b)
运行没有错误。
请解释一下。
【问题讨论】:
标签: python list tuples typeerror
那是因为(3) 就是3。 tuples 由逗号定义,而不是括号。如果您想要一个包含一个元素的 tuple,请添加一个逗号:(3,)。
【讨论】:
(3) 是括号中的数字3,(3,) 是一个元组:
>>> a = (3)
>>> type(a)
<type 'int'>
>>> a = (3,)
>>> type(a)
<type 'tuple'>
[3] 没有歧义,所以它是一个列表:
>>> a = [3]
>>> type(a)
<type 'list'>
list 构造函数接受 tuple 或 list,但不接受 int。
【讨论】:
使用逗号定义元组,
type((3,)) 它的类型为'tuple'
type(3) 它的类型为'int'
【讨论】: