有人可以详细解释下面的for循环类型吗?
primes = [x for x in range(2, 50) if x not in noprimes]
Run Code Online (Sandbox Code Playgroud)
要么
le_list = [i for i in getfiles(path) if i != 'fred']
Run Code Online (Sandbox Code Playgroud)
我没有得到的是i for i,或者x代表x.我不明白它究竟在说什么.
variable for variable in a list if variable whatever.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么你在开始时需要两次变量.for循环遍历列表中的每个项目,它是如何区别对待的?
x在写作时显然多余的额外提及变量的原因x for x是第一个x不需要x.它恰好出现在你给出的例子中.以下是一些例子,它们应该澄清x你问题中第一个和第二个之间的区别:
ones = [1 for x in range(10)]
Run Code Online (Sandbox Code Playgroud)
这简单地给出了10个列表,与之相同[1] * 10.
squares = [x*x for x in range(10)]
Run Code Online (Sandbox Code Playgroud)
这给出了指定范围内x每个的平方x.
在你的例子中,第二个x是for循环使用的变量,第一个x只是一个表达式,在你的情况下恰好发生x.表达式可以是您喜欢的任何内容,也不需要表达x.
results = [expression for x in range(10)]
Run Code Online (Sandbox Code Playgroud)
expression可以包括你喜欢的任何东西 - 字符串,计算,功能 - 无论你选择什么.如果表达式碰巧恰到好处,x那么如果您不习惯它,它看起来很不寻常,但它与以下内容相同:
results = []
for x in range(10):
results.append(expression)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |