相关疑难解决方法(0)

迭代器,迭代和迭代究竟是什么?

Python中"iterable","iterator"和"iteration"的最基本定义是什么?

我已阅读多个定义,但我无法确定其确切含义,因为它仍然不会沉入其中.

有人可以帮助我解释外行人的3个定义吗?

python iteration iterator iterable terminology

408
推荐指数
10
解决办法
29万
查看次数

从列表中删除项目时出现奇怪的结果

我有这段代码:

numbers = range(1, 50)

for i in numbers:
    if i < 20:
        numbers.remove(i)

print(numbers)
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是:

[2,4,6,8,10,12,14,16,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35 ,36,37,38,39,40,41,42,43,44,45,46,47,48,49]

当然我希望结果中没有出现20以下的数字,我假设我在删除时做错了.

python loops list

32
推荐指数
3
解决办法
5844
查看次数

为什么带有pop-method(或del语句)的for循环不会遍历所有列表元素

我是Python新手并尝试使用Python 3.2.3(默认,2012年10月19日,20:13:42),linux2上的[GCC 4.6.3]

这是我的样本代码

>>> l=[1,2,3,4,5,6]
>>> for i in l:
...     l.pop(0)
...     print(l)
... 
Run Code Online (Sandbox Code Playgroud)

我期待以下输出

1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
4
[5, 6]
5
[6]
6
[]
Run Code Online (Sandbox Code Playgroud)

相反,我得到了这个

1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

for循环在3转后停止迭代.有人可以解释一下原因吗?

python loops for-loop list

8
推荐指数
2
解决办法
6307
查看次数

迭代时修改列表

我知道你不应该在迭代列表时添加/删除项目.但是,如果我不更改列表长度,我可以修改列表中的项目吗?

class Car(object):
    def __init__(self, name):
        self.name = name
    def __repr__(self):
        return type(self).__name__ + "_" + self.name

my_cars = [Car("Ferrari"), Car("Mercedes"), Car("BMW")]
print(my_cars)  # [Car_Ferrari, Car_Mercedes, Car_BMW]
for car in my_cars:
    car.name = "Moskvich"
print(my_cars)  # [Car_Moskvich, Car_Moskvich, Car_Moskvich]
Run Code Online (Sandbox Code Playgroud)

或者我应该迭代列表索引而不是?像那样:

for car_id in range(len(my_cars)):
    my_cars[car_id].name = "Moskvich"
Run Code Online (Sandbox Code Playgroud)

问题是:上述两种方式是允许的,还是只有第二种方式没有错误?

如果答案是肯定的,那么以下代码段是否有效?

lovely_numbers = [[41, 32, 17], [26, 55]]
for numbers_pair in lovely_numbers:
    numbers_pair.pop()
print(lovely_numbers)  # [[41, 32], [26]]
Run Code Online (Sandbox Code Playgroud)

UPD.我想看看python文档,它说"允许这些操作",而不是某人的假设.

python iteration list

6
推荐指数
2
解决办法
1万
查看次数

标签 统计

python ×4

list ×3

iteration ×2

loops ×2

for-loop ×1

iterable ×1

iterator ×1

terminology ×1