蛰伏GR 2023-12-31 09:21 采纳率: 80%
浏览 11
已结题

Python列表推导式问题

img


如何理解推导式里面的迭代过程啊🥺,各位友友帮帮忙,感觉学完可迭代对象的内容后,有点眉目,但又不多🙏

  • 写回答

2条回答 默认 最新

  • 编程乐学 2023-12-31 09:48
    关注

    编辑不易,请先采纳

    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中的每一个元素。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月8日
  • 已采纳回答 12月31日
  • 创建了问题 12月31日