You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中for循环的边界规则及重复元素迭代问题咨询

Python for循环相关问题解答

问题1:Python中的for循环属于包含型还是排除型?

其实Python的for循环和不少语言里那种基于边界判断的for循环不太一样,它本质是遍历可迭代对象的每一个元素,从这个角度来说它是完全的包含型——只要是可迭代对象里存在的元素,都会被取出来执行循环体。

举个实际的例子:如果你写for i in [1,2,3],循环会依次处理1、2、3,没有任何“排除”的情况;哪怕是用range(1,4),看起来上限4没被包含,但那是range这个生成器自身的特性,不是for循环的规则——for循环只是把range生成的每一个元素(1、2、3)都包含进去执行了。

问题2:为什么for i in (1,1): print(i)会输出两个1?

这个问题的核心是得搞懂Python for循环的工作逻辑:它会逐个迭代可迭代对象中的每一个元素,完全不关心元素的值是否重复。

你写的(1,1)是一个包含两个元素的元组,这两个元素的值都是1,但它们是元组里两个独立的元素。for循环会先取出第一个1,执行print(i)输出1;接着再取出第二个1,再次执行print(i)输出第二个1。

如果想要程序只输出一次1,你可以先对可迭代对象去重,比如转换成集合(集合会自动剔除重复元素):

for i in set((1,1)): print(i)

这样就只会输出一次1了。

内容的提问来源于stack exchange,提问作者casillas

火山引擎 最新活动