【python学习】——为什么for循环里不可以改变变量的值

在之前的编程语言里,学到for循环里面是可以重置变量i的值的,然后让整个for循环从头开始,但是在python里面却行不通

这是为什么呢???

在python中,for循环相当于一个迭代器(Iterator),在循环体中改变循环变量的值对循环次数是没有影响的。 

迭代器在一个独立的线程中工作,并且拥有一个mutex锁。迭代器被创建的时候,建立了一个内存索引表(单链表),这个索引表指向原来的对象,当原来的对象数量改变的时候,这个索引表的内容没有同步改变,所以当索引指针往下移动的时候,便找不到要迭代的对象,于是产生错误。就是说迭代器在工作的时候,是不允许被迭代的对象被改变的。 

转载自:

点击打开链接

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,for循环的语法是使用关键字`for`后面跟一个变量名,然后使用关键字`in`后面跟一个可迭代对象。可迭代对象可以是列表、元组、字符串等。在括号写for循环的示例可以参考以下代码引用\[2\]: ``` ord_imgs = \[os.path.join(r'E:\inva-seg-selfpoint\img', str_name\[i\]) for i in range(len(str_name))\] ``` 在这个例子中,`str_name`是一个列表,`range(len(str_name))`生成了一个包含`str_name`长度范围内的整数的可迭代对象。`for i in range(len(str_name))`表示对于`str_name`中的每个索引`i`,执行一次循环循环体内的代码`os.path.join(r'E:\inva-seg-selfpoint\img', str_name\[i\])`将每个`str_name\[i\]`与路径进行拼接,并将结果添加到`ord_imgs`列表中。 另外,如果只需要循环一次,可以直接使用索引来访问列表中的元素,如引用\[3\]所示: ``` ord_imgs = os.path.join(r'E:\code\python\20211208\segmentation\inva-seg-selfpoint\img', str_name\[0\]) ``` 在这个例子中,`str_name\[0\]`表示访问`str_name`列表中的第一个元素。 所以,根据你的需求,可以根据具体情况选择适合的写法。 #### 引用[.reference_title] - *1* [python中for循环的用法-python []括号中使用for循环的用法 之 列表解析](https://blog.csdn.net/weixin_37988176/article/details/109370701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python括号面用for循环——一句话的for循环——for循环嵌入一句话](https://blog.csdn.net/weixin_41529093/article/details/118521339)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值