python for循环写法释义?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python for循环写法释义?相关的知识,希望对你有一定的参考价值。

今天看到一个新奇的for循环写法,看不懂,不知道是什么意思,但是执行没问题,特来寻找解释:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
n = 5
for b in [a[i:i + n] for i in range(0, len(a), n)]:
print(b)
执行结果如下:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[0]
想知道这是个什么写法?看b输出的样子像是嵌套,但是嵌套里没见过这样的例子,这个写法有什么说法吗?为什么可以写成这个样子?类似列表生成梨有列表推导,这个写法叫什么名称?

--------------------
ps:我眼瘸了,没看见a前边的[,后边是一个新生成的二维列表。b遍历了新生成的二维列表。

答: 其实这就类似于一个简写的双重for循环,后面的for表示第一重循环, 前面的是第二重循环。另外你的那个结果应该错啦,对应的结果如下所示。

第1层for循环执行两次,第2层for循环打印列表。结果如上,希望能够帮助到你。

参考技术A for 循环,它常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中 参考技术B in后面是一个列表推导,生成一个二维列表。

然后for b是遍历新生成的二维列表。

虽然输出结果写错了,但根据ps的内容,显然你已经理解了。
参考技术C 不要发布违规信息,这是严重的违规行为。

forEach循环遍历请求接口

参考技术A 最近项目的需求,需要遍历table表格里的数据,进行生产的操作,

效果:

接口返回的格式

潇洒的实现效果

但是有一点需要注意:如果用for循环,就会出现,接口全都请求成功以后,也不能成功赋值的错误!

例如for循环的写法如下:

for循环写法:
postAutoProduceDevice() 

        var _this = this;

        if (_this.zdExList.length < 1) 

          return _this.$message.warning("请先导入要生产的设备");

        

        var snArr = [];

        var snArrTotal = 0;

        var arrList = _this.zdExList;

        for (let index = 0; index < arrList.length; index++) 

          const element = arrList[index];

          _this.hqUserInfo(

            data: 

              name: "postAutoProduceDevice",

              data: JSON.stringify(

                batch: _this.produceDevSearch.batch,

                devicetype: _this.zd.devtype,

                sn: element.sn,

                field: "",

                snnum: "1",

                operid: _this.userid

              )

            

          ).then(res => 

            if (res.ret) 

              _this.zdExList[index] = 

                "sn": res.Data[0].sn,

                "deviceType": res.Data[0].devicetype,

                "logicId": res.Data[0].logicid,

                "mac": res.Data[0].mac,

                "ip": res.Data[0].ip,

                "retmsg": "生产成功"

              

             else 

              _this.zdExList[index].retmsg = res.Msg;

            

          );

        

      ,

forEach写法:

postAutoProduceDevice() 

        var _this = this;

        if (_this.zdExList.length < 1) 

          return _this.$message.warning("请先导入要生产的设备");

        

        var zdParams = 

          batch: _this.produceDevSearch.batch,

          devicetype: _this.zd.devtype,

          sn: "",

          field: "",

          snnum: "1",

          operid: _this.userid

        

        _this.zdExList.forEach((item,index) => 

          zdParams.sn = item.sn;

          _this.hqUserInfo(

            data: 

              name: "postAutoProduceDevice",

              data: JSON.stringify(zdParams)

            

          ).then(res => 

            if (res.ret) 

              item.sn = res.Data[0].sn;

              item.devicetype = res.Data[0].devicetype;

              item.logicId = res.Data[0].logicid;

              item.mac = res.Data[0].mac;

              item.ip = res.Data[0].ip;

              item.retmsg = "生产成功";

              _this.$set(_this.zdExList, index, _this.zdExList[index]);

             else 

              item.retmsg = res.Msg;

              _this.$set(_this.zdExList, index, _this.zdExList[index]);

            

          );

        );

      ,

以上是关于python for循环写法释义?的主要内容,如果未能解决你的问题,请参考以下文章

python 学习笔记(循环,print的几种写法,操作符)

Java for循环几种写法整理

如何用Python判断指定路径下的文件是文件夹还是文件(for循环写法总结)

for 循环新的写法==列表解析

forEach循环遍历请求接口

for 循环的一些其他写法用法