以下 Python List Comprehension语句可以改写为下面的 for 循环。
>>> [(x,y) for x in range(5) if x % 2 == 0 for y in range(5) if y % 2 == 1]
>>> result = []
>>> for x in range(5):
if x % 2 == 0:
for y in range(5):
if y % 2 == 1:
result.append((x,y))
我很难理解以下两个列表理解表达式。
表达它们的等效 for 循环(更易于阅读)方式是什么?
[(min([row[i] for row in rows]),max([row[i] for row in rows]))
for i in range(len(rows[0]))]
[[random.random()*(ranges[i][1]-ranges[i][0])+ranges[i][0]
for i in range(len(rows[0]))] for j in range(k)]
最佳答案
使用你的风格:
我相信第一个是这样做的:
result = []
for col in range(len(rows[0])):
a = rows[0][col]
b = rows[0][col]
for row in rows:
a = min(a, row[col])
b = max(b, row[col])
result.append((a, b))
关于python - 等价于复杂列表理解的循环表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047965/