Python中的枚举对象有什么用?怎样用内置函数enumerate()得到枚举对象?Python的for循环和C++的for循环有何区别?Python中for循环的本质是什么?

Python中的for循环和C/C++中的for循环很不一样:

在C++中,for循环是下面这样的:

	int i,value1,value2;
	for (i = 0; i < 10; i++)
	{
    
    
		value1 = 2 + i;
		value2 = i - 3;

	}

而在Python中,for循环是下面这样的格式:

for <variable> in <sequence>:
    <statements>
else:
    <statements>

其中的else语句,即:

else:
    <statements>

不是必须的。

可见,二者的确是有很大的区别。

C++的for循环是靠一个变量及判定条件去控制循环体的执行,而Python中的for循环本质上是去遍历可迭代的对象。

Python中for循环的示例如下:

languages = ["C", "C++", "Perl", "Python"]

for x in languages:
    print(x)

运行结果如下:
在这里插入图片描述
从这个例子可以看出,果然Python中的for循环本质上是去遍历可迭代的对象。

现在问题来了,有时候我需要知道我当前执行了多少次循环,比如以上面的例子,当遍历到Perl次的时候,如果从0开始的话,应该是第2次,这时候我们就可以用将可迭代对象转化为枚举对象来实现。

示例代码如下:

languages = ["C", "C++", "Perl", "Python"]

for index, x in enumerate(languages):
    print(index, x)

运行结果如下:
在这里插入图片描述
从这个示例代码中我们可以看出,可以用内置函数enumerate()来实现将别的可迭代对象转化为枚举对象,枚举对象本质上也是一种可迭代的对象,只不过它的每个元素都有两个属性,一是枚举值,二是具体的内容。
正是因为它的每个元素都有两个属性,其中一个就是枚举值,所以我们可以知道我们作了多少次循环。

内置函数enumerate()的语法如下:

enumerate(iterable, start)

参数:
iterable—可迭代对象
start—数字。定义枚举对象的起始编号。默认值为 0。

我们可以利用它的第二个参数将上面例子的循环次数由0开始计数到1开始计数,修改后的代码如下:

languages = ["C", "C++", "Perl", "Python"]

for index, x in enumerate(languages, 1):
    print(index, x)

运行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wenhao_ir/article/details/125443427