动态更新python中For语句中使用的变量

动态更新python中For语句中使用的变量,python,for-loop,Python,For Loop,我想更新for循环语句中使用的列表,因为它在循环中被附加了新值。我知道这段代码不会更新列表,但我找不到这样做的方法。我希望所需的输出可以更好地解释它 输入 输出 所需输出 我建议您使用while循环而不是for,这样就省去了中断关键字的需要: l=[1,2,3] count = len(l) # There are already len(l) elements in the list pos = 0 while len(l) < 10: count += 1 x =

我想更新for循环语句中使用的列表,因为它在循环中被附加了新值。我知道这段代码不会更新列表,但我找不到这样做的方法。我希望所需的输出可以更好地解释它

输入 输出 所需输出
我建议您使用
while
循环而不是
for
,这样就省去了
中断
关键字的需要:

l=[1,2,3]
count = len(l) # There are already len(l) elements in the list
pos = 0

while len(l) < 10:

    count += 1

    x = l[pos]

    l.append(x+10)

    pos += 1

print "list = %r" %l
print "count = %r" %count
另外,您可以注意到我将
list
变量重命名为
l
,以防止类型
list
与变量本身之间的混淆

我过去常常在列表的末尾添加元素


希望对您有所帮助。

我建议您使用
while
循环,而不是
for
,这样可以省去
中断
关键字的需要:

l=[1,2,3]
count = len(l) # There are already len(l) elements in the list
pos = 0

while len(l) < 10:

    count += 1

    x = l[pos]

    l.append(x+10)

    pos += 1

print "list = %r" %l
print "count = %r" %count
另外,您可以注意到我将
list
变量重命名为
l
,以防止类型
list
与变量本身之间的混淆

我过去常常在列表的末尾添加元素

希望能有所帮助。

这里有两个问题:

第一:如果x>3:测试。(你为什么要包括这个?)

第二,当您有一个
for
语句时,它只循环最初出现的值

这应该起作用:

l = [1,2,3]
count = 0
while len(l) < 10:
    l.append(l[count]+10)
    count += 1
l=[1,2,3]
计数=0
而len(l)<10:
l、 追加(l[计数]+10)
计数+=1
这里有两个问题:

第一:如果x>3:测试。(你为什么要包括这个?)

第二,当您有一个
for
语句时,它只循环最初出现的值

这应该起作用:

l = [1,2,3]
count = 0
while len(l) < 10:
    l.append(l[count]+10)
    count += 1
l=[1,2,3]
计数=0
而len(l)<10:
l、 追加(l[计数]+10)
计数+=1

避免使用关键字
列表
作为变量名,丑陋而危险……这对我来说很好。输出是
list=[1,2,3,11,12,13,21,22,23,31,32]
count=8
(这是给定代码的正确输出,而不是根据OP要求的输出)。@Rahul看起来这取决于版本,了解您使用的python版本会很有帮助。在这里使用python 2.7.11。您使用的是什么版本?在对集合进行迭代时对其进行变异几乎从来都不是一个好主意。答案几乎肯定是创建一个只包含所需值的新列表。(在您使用Python一段时间后,您会发现自己在几乎所有类似的情况下都使用生成器函数,但对于初学者,只需创建一个新列表即可。)避免使用关键字
list
作为变量名,丑陋而危险……这对我来说很好。输出是
list=[1,2,3,11,12,13,21,22,23,31,32]
count=8
(这是给定代码的正确输出,而不是根据OP要求的输出)。@Rahul看起来这取决于版本,了解您使用的python版本会很有帮助。在这里使用python 2.7.11。您使用的是什么版本?在对集合进行迭代时对其进行变异几乎从来都不是一个好主意。答案几乎肯定是创建一个只包含所需值的新列表。(在您使用Python一段时间后,您会发现自己几乎在每种情况下都使用生成器函数,但对于初学者,只需创建一个新列表即可。)
list = [1, 2, 3, 11, 12, 13, 21, 22, 23, 31]
count = 10
l = [1,2,3]
count = 0
while len(l) < 10:
    l.append(l[count]+10)
    count += 1