@井庆华 那个是因为LZ写的蛋疼,所以才这么蛋疼的写两层列表推断,基本上非常不推荐这么写
还原为:
lines = []
for j in range(10):
arr = []
for i in range(10):
# 这里用了个小技巧,
# 如果i和j都是0,那么max(i * j, i, j) = 0
# 如果i和j有一个是0,那么max(i * j, i, j)就是那个非0的值
# 如果i和j均不为0,那么max(i * j, i, j)就是i * j
elem = str(max(i * j, i, j))
arr.append(elem)
line = '\t'.join(arr)
lines.append(line)
print '\n'.join(lines)
那个max可以展开为:
lines = []
for j in range(10):
arr = []
for i in range(10):
if i == 0 and j == 0:
elem = str(0)
elif i == 0 and j != 0:
elem = str(j)
elif i != 0 and j == 0:
elem = str(i)
elif i != 0 and j != 0:
elem = str(i * j)
arr.append(elem)
line = '\t'.join(arr)
lines.append(line)
print '\n'.join(lines)