在列表中附加一个元组 - 两种方式之间有什么区别?

Sky*_*326 35 python types tuples list append

我4个月前写了我的第一个"Hello World".从那时起,我一直在学习莱斯大学提供的Coursera Python课程.我最近参与了一个涉及元组和列表的迷你项目.将元组添加到列表中有一些奇怪的事情:

a_list = []
a_list.append((1, 2))       # Succeed! Tuple (1, 2) is appended to a_list
a_list.append(tuple(3, 4))  # Error message: ValueError: expecting Array or iterable
Run Code Online (Sandbox Code Playgroud)

这对我来说很困惑.为什么使用"tuple(...)"而不是简单的"(...)"来指定要附加的元组会导致ValueError

BTW:我使用了课程中使用的CodeSkulptor 编码工具

Bha*_*Rao 50

tuple函数只接受一个必须是可迭代的参数

tuple([iterable])

返回一个元组,其元素与iterable的项目相同且顺序相同.

尝试3,4使用[3,4](列表)或(3,4)(元组)进行迭代

例如

a_list.append(tuple((3, 4)))
Run Code Online (Sandbox Code Playgroud)

将工作


bra*_*der 10

因为tuple(3, 4)创建元组不是正确的语法.正确的语法是 -

tuple([3, 4])
Run Code Online (Sandbox Code Playgroud)

要么

(3, 4)
Run Code Online (Sandbox Code Playgroud)

你可以从这里看到它 - https://docs.python.org/2/library/functions.html#tuple