序列元素不会修改(Python 3.4)

时间:2014-04-28 07:20:07

标签: python list python-3.x python-3.4

好的,此后不再有问题:

import random

lotto = [0, 0, 0, 0, 0, 0, 0, 0]
index = 0

while index <= 6:
    lotto[index] = random.randrange(1, 9)
    index = index + 1
    print("Lotto number",index,"is",lotto[index],"!")

我似乎无法找到为什么不修改这些序列元素的原因。正确处理索引和序列,但lotto[index] = random.randrange(1, 9)行似乎没用。它根本不会改变序列中的任何内容。我知道我错过了一些东西,但我现在已经盯着这个东西很久了,只是看不出我搞砸了什么。我已经改变了元素并且它正确地输出了所有内容它不会改变序列元素。 HALPS?

1 个答案:

答案 0 :(得分:3)

打印时,您始终指的是下一个元素。只需将打印线与增量线交换,如下所示

print("Lotto number",index,"is",lotto[index],"!")
index = index + 1

当你打印这样的东西时,你可以使用format功能,就像这样

print("Lotto number {} is {} !".format(index, lotto[index]))

除此之外,你可以使用for循环和range函数,就像这样

for index in range(7):
    lotto[index] = random.randrange(1, 9)
    print("Lotto number", index, "is", lotto[index], "!")

range函数将在每次迭代时一次一个地给出0到6的值。

更好的是,您可以使用列表理解创建新列表,例如

lotto = [random.randrange(1, 9) for index in range(7)]