max-age=0
有人可以解释直接位于关闭括号之后和此代码第一行中 之前的 i ,或者分享链接或指南解释这些代码;我发现的只是一般性解释(不是python,而是一般的程序员)但没有太具体;我理解(我认为)如果i%2 == 0 ,对于我的范围(51),而不是之前的 i 部分。
答案 0 :(得分:2)
开括号后面的第一个i
表示将存储在列表中的值。出现的另一个i's
只是循环变量。从技术上讲,它们都是循环控制变量,但是,第一个i
是将存储在列表中的变量。
答案 1 :(得分:2)
列表推导只是一些等效循环的简写。
result = []
for i in range(3):
result.append(i)
表示:
result
列表理解只是一次构建列表匿名,即没有为其指定名称(如上例中的i
)。
第一个['c' for i in range(3)]
[2*i for i in range(3)]
['hello'[i] for i in range(3)]
所做的回答是,它回答了“我在下一个循环定义的每次迭代中添加到列表中的内容是什么?”
尝试这些理解,看看你得到了什么:
@echo off
set /a max=0
set /a min=32767
echo %time%
:start
TITLE Min:%min% Max:%max%
set key=%random%
if %key% LSS %min% set min=%key%
if %key% GTR %max% set max=%key%
IF NOT %min%%max%==032767 goto start
echo %time%
pause
答案 2 :(得分:1)
当你编写列表推导时,你必须提供一个你想要为循环的每次迭代返回的值(最终会填充结果列表),然后是你正在运行的循环。在它最基本的形式,看起来像这样:
[i for i in range(10)]
这意味着“每次使用我迭代的值作为返回值并将其放入我的列表中。”你没有 这么简单。例如,如果要生成元组列表,它可能如下所示:
[(i, False) for i in range(10)]
答案 3 :(得分:1)
您所指的i
是将要插入到您正在创建的新列表中的值。列表推导为您创建一个新列表,i
将在该新列表中。为了打破你粘贴到英语的列表理解,你所说的(从左到右)是:
将值i
输入新列表,对于0到50之间的数字范围内的i
的每个值,但只有偶数,即i % 2 = 0
或者再次重新说出来:
对于范围为0-50(range(51)
)的每个值,只有那些偶数(i % 2 = 0
)的数字,插入每个数字(由i
表示的每个数字)到新列表([]
):
[i for i in range(51) if i % 2 == 0]
答案 4 :(得分:1)
这是每次迭代将包含在列表中的值。
例如,尝试将其更改为i + 1
,并且所有结果列表值应高1。