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的几种写法,操作符)