Python如何在for循环中同时使用两个变量与两个控制条件

 更新时间:2024年03月08日 10:35:15   作者:L_1900  
Python是一种广泛使用的编程语言,其提供了许多强大的方法来处理代码,Python for循环是其中一种非常有用的方法,下面这篇文章主要给大家介绍了关于Python如何在for循环中同时使用两个变量与两个控制条件的相关资料,需要的朋友可以参考下

在C语言中常常遇到for循环使用两个变亮和两个控制条件的情况,比如我要输出矩阵对角线元素的坐标时

例如输出:

0,0
1,1
2,2
3,3
...

在C语言中,我们会这样使用for循环来输出

for(i=0,j=0;i<n,j<n;i++,j++){
    printf(i,j)
    printf("\n")
}

在python中如何使用for循环达到类似于上面c语言的这样的结果呢?

一开始很多人不假思索的就直接敲下如下的代码

for i in range(n):
    for j in range(n):

很明显,这样的逻辑是不对的,因为我们要求在一个for循环内满足两个控制条件,如果按照上面代码的逻辑,就是遍历完一次j的值,i才会+1,和上面每一次i,j的值同时加一相违背。

这里就可以用python中的zip()函数。

先来直观看一下zip()函数的作用

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b)     # 返回一个对象
zipped
<zip object at 0x103abc288>
>>> list(zipped)  # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c))              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]

故可以改为

for i,j in zip(range(n),range(n)):
    print(i,j)

输出结果同上.

有些人可能疑惑这里也可以用

for i in range(n):
    print(i,i)

来表示

不过这个是一个特殊的情况,如果i,j值不同的话,我们只能使用zip()函数来达到同上面c语言同样的目的。

附:python多个变量的for循环

当for循环有两个需要迭代的对象时,要用zip对这多个变量封装,否则会报错“too many values to unpack”

错误的例子:

starts = [0,1,2,3,4]
ends = [5,6,7,8,9]
for start, end in starts, ends:
    print((start, end))

正确的例子:

starts = [0,1,2,3,4]
ends = [5,6,7,8,9]
for start, end in zip(starts, ends):
    print((start, end))

总结

到此这篇关于Python如何在for循环中同时使用两个变量与两个控制条件的文章就介绍到这了,更多相关Python for循环同时用两个变量和控制条件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python报错:对象不存在此属性的解决

    Python报错:对象不存在此属性的解决

    这篇文章主要介绍了Python报错:对象不存在此属性的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • python调用API接口实现登陆短信验证

    python调用API接口实现登陆短信验证

    在本篇文章里小编给大家整理的是关于python调用API接口实现登陆短信验证的实例内容,需要的朋友们可以参考下。
    2020-05-05
  • 关于python的list相关知识(推荐)

    关于python的list相关知识(推荐)

    下面小编就为大家带来一篇关于python的list相关知识(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • python管理包路径之pycharm自动解决包路径注册

    python管理包路径之pycharm自动解决包路径注册

    这篇文章主要介绍了python本管理包路径之pycharm自动解决包路径注册,文章通过围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 解决Python报错Valueerror: Expected 2d Array Got 1d Array Instead

    解决Python报错Valueerror: Expected 2d Array 

    如您所知,每种编程语言都会遇到很多错误,有些是在运行时,有些是在编译时,下面我就来看看当发生错误 ValueError: Expected 2D array, got 1D array instead时该如何解决吧
    2024-01-01
  • TensorFlow车牌识别完整版代码(含车牌数据集)

    TensorFlow车牌识别完整版代码(含车牌数据集)

    这篇文章主要介绍了TensorFlow车牌识别完整版代码(含车牌数据集),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python tkinter 下拉日历控件代码

    Python tkinter 下拉日历控件代码

    这篇文章主要介绍了Python tkinter 下拉日历控件代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python实现将通信达.day文件读取为DataFrame

    Python实现将通信达.day文件读取为DataFrame

    今天小编就为大家分享一篇Python实现将通信达.day文件读取为DataFrame,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python面向对象之继承原理与用法案例分析

    Python面向对象之继承原理与用法案例分析

    这篇文章主要介绍了Python面向对象之继承原理与用法,结合具体案例形式分析了Python面向对象程序设计中继承的原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-12-12
  • python ocr简单示例之识别验证码

    python ocr简单示例之识别验证码

    OCR(Optical character recognition,光学字符识别)是一种将图像中的手写字或者印刷文本转换为机器编码文本的技术,下面这篇文章主要给大家介绍了关于python ocr简单示例之识别验证码的相关资料,需要的朋友可以参考下
    2023-01-01

最新评论