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

Posted 昊虹图像算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

运行结果如下:

以上是关于Python中的枚举对象有什么用?怎样用内置函数enumerate()得到枚举对象?Python的for循环和C++的for循环有何区别?Python中for循环的本质是什么?的主要内容,如果未能解决你的问题,请参考以下文章

在Python中什么样的对象布尔(bool)值为False,什么样的对象布尔(bool)值为True可以用内置函数bool()判断对象的布尔值

python语言中的内建函数dir()是干什么用的啊?

万恶之源 - Python内置函数一

匿名函数和内置方法

怎样在Python中查询一个类或一个对象有哪些方法(成员函数)用函数dir()

python之枚举--内置函数-enumerate()