|
20鱼币
为什么陷入死循环了
xys = [0,1,2,3,4,5]
for xy in xys:
position = xys.index(xy)
print (position)
xys.insert(position+1,'a')
print(xys)
本帖最后由 gaming1990 于 2025-6-20 09:05 编辑
试修改原代码:
- xys = [0,1,2,3,4,5]
- for xy in xys[:]:
- position = xys.index(xy)
- print (position)
- xys.insert(position+1,'a')
- #break
- print(xys)
复制代码
回答:Python 的 for 语句与 C 或 Pascal 中的不同。
Python 的 for 语句不迭代算术递增数值‌‌
而是在列表或字符串等任意序列的元素上迭代,按它们在序列中出现的顺序。
重点是这两个:
--> 很难正确地在迭代多项集的同时修改多项集的内容。
-->更简单的方法是迭代多项集的副本或者创建新的多项集
就是python的for 语句的特性
测试:
- xys = [0,1,2,3,4,5]
- count= 0
- for xy in xys:
- count += 1
- position = xys.index(xy)
- print (position)
- xys.insert(position+1,'a')
- if count == 14:
- break
- print(xys)
复制代码
得到的结果:
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- [0, 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 1, 2, 3, 4, 5]
复制代码
最后的[1,2,3,4,5]是原列表中的数据内容,中间的'a'是for加进去的内容。
|
最佳答案
查看完整内容
试修改原代码:
回答:Python 的 for 语句与 C 或 Pascal 中的不同。
Python 的 for 语句不迭代算术递增数值
而是在列表或字符串等任意序列的元素上迭代,按它们在序列中出现的顺序。
重点是这两个:
--> 很难正确地在迭代多项集的同时修改多项集的内容。
-->更简单的方法是迭代多项集的副本或者创建新的多项集
就是python的for 语句的特性
测试:
得到的结果:
最后的[1,2,3,4,5]是原列表中的 ...
|