pyhton for循环语句有多个迭代变量时如何理解

本文解释了Python中for循环同时使用多个迭代变量的用法,通过对比例子1和2,澄清了变量i和language在enumerate函数中的作用,并强调了Python与C/C++函数返回值差异对理解的影响。
摘要由CSDN通过智能技术生成

pyhton for循环语句有多个迭代变量时如何理解

如下面的例子

【例子1】
languages = ['Python', 'R', 'Matlab', 'C++']
for language in languages:
    print('I love', language)
print('Done!')
# I love Python
# I love R
# I love Matlab
# I love C++
# Done!

【例子2for i, language in enumerate(languages, 2):
    print(i, 'I love', language)
print('Done!')
# 2 I love Python
# 3 I love R
# 4 I love Matlab
# 5 I love C++
# Done!

例子1容易理解,language 的取值是 list 中的每个元素。

例子2有点不好理解了,看打印结果可知,迭代变量 i 是取enumerate函数的返回值,language是取列表里的元素。那为什么迭代变量 i 的迭代对象不是languageslanguage的迭代对象不是 enumerate()?它们的对应原则是什么样的?

其实这是一个误解,迭代变量 ilanguage其实只是enumerate函数的两个返回值而已,enumerate函数先返回下标,后返回元素值

之所以产生这个误解,是因为C函数只能有一个返回值的,而Python可以有多个返回值的,这个观念要转变过来

def func1(a):
    if a:
        return 1,2,3,4
    return 5,6,7,8

x, y, z, k = func1(1)
print(x,y,z,k)

x, y, z, k = func1(0)
print(x,y,z,k)

输出:

1 2 3 4
5 6 7 8

所以啊C/C++用的比较多的同学们,学习python时,要抛弃以前的知识,当做重头学,这要才能更好领悟python的精髓。

举一反三:

Python还可以这样赋值 x, y, z = 1, 2, 3 ,链式赋值的这种写法在C/C++里是不存在的,会直接报语法错误

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值