【发布时间】:2013-10-22 11:52:59
【问题描述】:
目前,我正在研究我的 Python 2 书中的一组练习,但遇到了一个问题。以下是问题:
“5.1 - 编写一个程序,从用户那里读取数字列表;当用户输入 0 时,列表终止。在所有输入之后,程序应该打印列表。” p>
我对5.1的回答如下:
def main():
L = []
done = False
while not done:
num = input( "Enter a number: " )
if num == 0:
for i in L:
print i
done = True
else:
L.append(num)
main()
问题在于练习 5.2,它要求:
“5.2 - 更改程序 (5.1) 以使用元组而不是列表。”
这甚至可能吗?我的印象是元组是不可变的,所以它们真的不能用来代替这里的列表。我对吗?我疯了吗?我的 Python 书疯了吗?我在这里完全错过了关于元组的东西吗?帮助...
【问题讨论】:
-
可能练习只是想展示元组的等效用法,以及两种情况下的代码有何不同。虽然你不能改变一个元组,但你可以在每次想要追加的时候创建一个新的元组。
-
提示:数字也是不可变的,
i = i + 5仍然有效... -
当然,给定的元组是不可变的,但您仍然可以对其执行操作。不同之处在于,对于可变结构(如列表),操作将更改列表,而对于不可变结构(如元组),操作将返回一个新的元组。 (不过,对可变数据结构的一些操作仍会返回新的数据结构。)