题目:将list1内元素移动到list2,最后list1为空。
# 我的代码:
list1=["c++","java","python","sql","javascript"]
list2=[]
for i in range(len(list1)):
a=list1.pop()
list2.append(a)
print("list1=",list1)
print("list2=",list2)
运行结果: (暂且不管顺序)
list1= []
list2= ['javascript', 'sql', 'python', 'java', 'c++']
我想知道for in过程中发生了什么,于是加了几行print
list1=["c++","java","python","sql","javascript"]
list2=[]
for i in range(len(list1)):
print(i)
print(len(list1))
print(range(len(list1)))
print("__ __ __ __ __ __ __ __
")
a=list1.pop()
list2.append(a)
print("list1=",list1)
print("list2=",list2)
# 结果:
0
5
range(0, 5)
__ __ __ __ __ __ __ ___
1
4
range(0, 4)
__ __ __ __ __ __ __ ___
2
3
range(0, 3)
__ __ __ __ __ __ __ ___
3
2
range(0, 2)
__ __ __ __ __ __ __ ___
4
1
range(0, 1)
__ __ __ __ __ __ __ ___
list1= []
list2= ['javascript', 'sql', 'python', 'java', 'c++']
i / len(list1) / range(len(list1))同时变化:
遍历 |
1 |
2 |
3 |
4 |
5 |
i |
0 |
1 |
2 |
3 |
4 |
len(list1) |
5 |
4 |
3 |
2 |
1 |
range(len(list1)) |
range(0, 5) |
range(0, 4) |
range(0, 3) |
range(0, 2) |
range(0, 1) |
i 是从range(len(list1))中逐次取值的,那么应该在第4次就取不到值然后截止了—— i=3 & range(len(list1))=range(0, 2) 是矛盾的啊~
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…