hunter魔术师 发表于 2022-3-12 22:38:35

列表中嵌套列表嵌套循环

mup=[['{b}*{a}={c}'.format(a=a,b=b,c=a*b) if a >=b else "" for b in range(1,10)]for a in range(1,10)]
有大神可以解答一下上面这个表达式吗,单独看我都懂,组合起来我就蒙了
这个if是在b和a循环之前做判断的吗?a,b初始值应该是没有吧,而当b=1的时候,怎么就到第一个列表外的a=1了?
有人可以拆解一下吗?

isdkz 发表于 2022-3-12 22:41:32

本帖最后由 isdkz 于 2022-3-12 22:47 编辑

拆开就是这样子:
mup = []
for a in range(1,10):
    temp = []
    for b in range(1,10):
      if a >= b:
            temp.append('{b}*{a}={c}'.format(a=a,b=b,c=a*b))
      else:
            temp.append("")
    mup.append(temp)

b 得从 1 到 9 执行完才到外层的 a

hunter魔术师 发表于 2022-3-13 11:52:45

isdkz 发表于 2022-3-12 22:41
拆开就是这样子:




谢谢大神不吝赐教
页: [1]
查看完整版本: 列表中嵌套列表嵌套循环