新手问一个关于迭代器和for in循环的问题
最近,我刚学了python。问题1:书中有一个练习要求我从列表中删除三个元素。当时,我觉得这种逐条删除的方法很愚蠢。我认为应该有一个更快更灵活的方法。所以我们播下了这个问题的种子。
当我知道如果,我发现我可以让代码自己判断,我想尽快删除它。但后来我发现if else elif是一个单一的判断,没有迭代就没有办法做到。
当谈到学习for in循环时,我认为这个难题应该被解决。但是我们发现,如果使用remove()和pop()来配合for in循环,就会造成迭代器的“错位”。所以我转身,试图使用Del声明问题2:在书中没有提到Del和remove()之间有任何区别。它应该叫做语句和函数
然后要意识到,这根本不是函数或语句的问题,而是指向for in的指针会因为删除元素而自动从元素中跳离,导致比预期的循环次数少一次。那么,有没有办法连续地从同一个列表中删除元素,直到列表中没有元素?
>>> ls=
>>> ls
>>> for e in ls.copy():
... print(e)
... if e%3==0:
... ls.remove(e)
...
0
1
2
3
4
5
6
7
8
9
>>> ls
1. 你不能删除所有与del一次?
2. 与您编写的循环代码一样,您应该能够直接使用del diner并删除它,而无需进行循环处理。
3、del a,删除列表中的第二个元素。
a.删除('bbb '),删除列表中的'bbb '选项。
前者使用序列号删除数据,后者使用内容删除数据。 # 测试for循环里面直接删除序列
f=['a','d','e']
tip = 1
for x in f:
del f
print(str(tip)+"次删除")
print(x)
print(f)
tip=tip+1
print(tip)
print(f)
"""
输出结果:
1次删除
a
['d', 'e']
2次删除
e
['e']
3
['e'] 你应该看一看Python知识,不是所有的问题,这是不适合学习的
页:
[1]