压缩 for 循环表达式 (Python)
Condensing for loop expressions (Python)
有没有办法将这对循环压缩成两行或一行?:
for x in y:
z = 1
while x > z: z += 1
看起来更像(请注意以下内容无效):
for x in y: z = 1
while x > z: z += 1
请注意:重点不是解决实际循环,只是 for
循环必须在 while 循环之前包含某种计数器变量。
问题纯粹是关于语法的,所以解析 z 的值不是这里的查询。代码可能是这样的:
for x in y:
z = 1
q = 0
while z < x:
q += 1
或者 for 和 while 循环的任何其他组合,其中在 for
和 while
之间至少定义了一个变量,但我希望循环压缩,而不是删除使用完全循环。
或者这个?
for x, z in [(x, 1) for x in y]:
while x > z:
z += 1
有没有办法将这对循环压缩成两行或一行?:
for x in y:
z = 1
while x > z: z += 1
看起来更像(请注意以下内容无效):
for x in y: z = 1
while x > z: z += 1
请注意:重点不是解决实际循环,只是 for
循环必须在 while 循环之前包含某种计数器变量。
问题纯粹是关于语法的,所以解析 z 的值不是这里的查询。代码可能是这样的:
for x in y:
z = 1
q = 0
while z < x:
q += 1
或者 for 和 while 循环的任何其他组合,其中在 for
和 while
之间至少定义了一个变量,但我希望循环压缩,而不是删除使用完全循环。
或者这个?
for x, z in [(x, 1) for x in y]:
while x > z:
z += 1