
如何理解推导式里面的迭代过程啊🥺,各位友友帮帮忙,感觉学完可迭代对象的内容后,有点眉目,但又不多🙏
编辑不易,请先采纳
a1=[x for elem in vec for x in elem]:首先,我们从外到内进行迭代,在每个内部列表中取出元素x,然后将其添加到新的列表a1中。迭代过程类似于嵌套的for循环。
外层迭代:for elem in vec,elem为vec中的每一个内部列表。
内层迭代:for x in elem,x为elem中的每一个元素。
a2=[[x for elem in vec] for x in vec]:这次我们修改了迭代顺序。首先,我们从外层列表vec中取出每个元素x,然后在内部迭代时一次将整个外层列表vec作为元素添加到新的列表a2中。
外层迭代:for x in vec,x为vec中的每一个元素。
内层迭代:for elem in vec,elem为vec中的每一个内部列表。
a3=[x for x in elem for elem in vec]:你的这行代码是无效的。这是因为你在第一个迭代变量x使用之前已经引用了第二个迭代变量elem。在列表推导式中,变量的作用范围是从左到右的,所以它无法正常工作。正确的写法应该是a3=[x for elem in vec for x in elem]。
a4=[[x for x in elem] for elem in vec]:这次的迭代顺序与第一个例子相同,我们从外到内迭代。对于每个内部列表elem,我们取出其中的元素x,并将其作为一个新的列表添加到a4中。
外层迭代:for elem in vec,elem为vec中的每一个内部列表。
内层迭代:for x in elem,x为elem中的每一个元素。