我想更新for循环语句中使用的列表,因为它在循环中附加了新值。我知道这段代码不会更新列表,但我无法找到这样做的方法。我希望所需的输出可能会更好地解释它
list=[1,2,3]
count=0
for x in list:
if int(len(list))>10:
break
else:
count=count+1
x=x+10
if x>3:
list=list+[x]
print "list = %r" %list
print "count = %r" %count
list = [1, 2, 3, 11, 12, 13]
count = 3
list = [1, 2, 3, 11, 12, 13, 21, 22, 23, 31]
count = 10
答案 0 :(得分:0)
我建议您使用while
循环而不是for
,这样可以节省break
关键字的需要:
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 = [1, 2, 3, 11, 12, 13, 21, 22, 23, 31]
count = 10
另外,您可以注意到我将list
变量重命名为l
,以防止类型list
与变量本身之间出现混淆。
我使用append
在列表末尾添加元素。
希望它会有所帮助。
答案 1 :(得分:0)
这里有两个问题:
首先:if x>3:
测试。 (你为什么要包括那个?)
当你有一个for
语句时,它会循环显示最初出现的值。
这应该有效:
l = [1,2,3]
count = 0
while len(l) < 10:
l.append(l[count]+10)
count += 1