相关疑难解决方法(0)

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

我有这段代码:

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
查看次数

理解“list_a 中的项目如果...”PYTHON

我已经多次看到以下代码,并且我知道它是我的问题的解决方案,但我真的很难理解它是如何工作的。代码特别是:

item for item in list_a if item not in list_b.
Run Code Online (Sandbox Code Playgroud)

例如,使用for each in list,我可以理解它正在遍历列表,并为该列表中的每个项目执行循环。withwhile x < 10很容易理解,大多数其他循环和类似命令都非常简单。即使for item in list_a if item not in list_b对我来说也是有意义的,尽管如果没有第一个,单凭这一点似乎就行不通item……但出于某种原因,我只是不明白第一个如何item适合方程,除了“因为”(这只是这不是一个有用的答案),它代表什么。

有人能够帮助我解决这个问题,或者能够将这个方程扩展到几个方程,这可能会帮助我理解它是如何工作的。当我了解这些工具的工作原理时,使用这些工具对我来说就容易多了,而这些工具让我困惑了一段时间。

提前致谢。

python

7
推荐指数
1
解决办法
3万
查看次数

标签 统计

python ×2

list ×1

loops ×1