写法 :for i,j,k in product(range(32), range(32),range(32)):

参考:https://segmentfault.com/q/1010000006238665

Python如何同时进行两个循环

想写这样一个逻辑

for i in lit:

for j in lit:

do_something(i, j)

但是感觉这样写好丑,有没有比较优美的写法?

1、用 itertools 的笛卡尔积

from itertools import product

for i, j in product(lit, lit):

do_something(i, j)

product 返回一个生成器,能 yield 出传入数组形成的笛卡尔积。

product 可以接受任意多个数组。

2、我来补上一刀:

# coding=utf-8

def unique_pairs(n):

"""一个贱贱的生成器"""

for i in n:

for j in n:

yield i, j

lit = "hey!"

for i, j in unique_pairs(lit):

print(i, j)

unique_pairs接收一个可迭代的对象, 返回一个生成器, 能输出接收迭代对象所有迭代元素可能的笛卡尔积

本质上还是双重循环, 但是自我感觉良好, 可复用

代码输出:

('h', 'h')

('h', 'e')

('h', 'y')

('h', '!')

('e', 'h')

('e', 'e')

('e', 'y')

('e', '!')

('y', 'h')

('y', 'e')

('y', 'y')

('y', '!')

('!', 'h')

('!', 'e')

('!', 'y')

('!', '!')

3、最近刷了一道leetcode的题目【two sum】,感觉思路很好哇,也和循环有关系。

Giver numers=[2, 7, 11, 15],target=9, because 2+7=9, then return indexs [0,1].

刚开始,想用2重循环做的,发现时间超时(时间复杂度太高)

然后想一下1重循环也可以搞定的,每次记录下你得到的信息(使用map了),减小了时间复杂度。

最好不要用2重循环,感觉好浪费时间哦~

4、izip 不行?

python for循环写法_python中多重循环的写法相关推荐

  1. python list遍历删除_Python中list循环遍历删除数据的正确方法

    前言 初学Python,遇到过这样的问题,在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) f ...

  2. python中循环结构_python中的循环结构等相关知识

    分支结构 1.单分支:一般用于只会发生一种情况的场景,if #90以上优秀 score=95 if score>90: print("优秀") 2.双分支:一般用于会发生两种 ...

  3. python for循环 内存_python中for循环的内存分配

    我对 python的内存使用感到困惑. 我正在运行一个返回pandas数据帧的函数(1161 X 240),参数是(bamfile,pandas.Dataframe(1161 X 50)). 现在我将 ...

  4. python中while循环并列_Python中while循环的一个问题

    匿名用户 1级 2013-08-27 回答 是因为你使用的编译器是python3.x的原因: Python 3.3.1 (default, Apr 17 2013, 22:32:14) [GCC 4. ...

  5. pythonlist循环添加元素_python中 for循环之后 添加元素到列表失败?

    import re ls = list() dc = dict() # 介词.连词.人称代词等自己统计 adverb = ['i', 'you', 'he', 'she', 'it', 'in', ' ...

  6. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  7. 我用python是什么梗_Python中的一些梗

    在学习python的时候,会有一些梗非常不适应,在此列举列表删除和多重循环退出的例子: 列表删除里面的坑 比如我们有一个列表里面有很多相同的值,假如:nums=[1,6,6,3,6,2,10,2,10 ...

  8. python算法和数据结构_Python中的数据结构和算法

    python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...

  9. scala中循环守卫_Scala中的循环

    scala中循环守卫 Scala中的循环 (Loops in Scala) In programming, many times a condition comes when we need to e ...

  10. python的for语句用法_python中list循环语句用法实例

    本文实例讲述了python中list循环语句用法.分享给大家供大家参考.具体用法分析如下: Python 的强大特性之一就是其对 list 的解析,它提供一种紧凑的方法,可以通过对 list 中的每个 ...

最新文章

  1. 赛门铁克开启“容灾即服务”时代
  2. 这是我看过关于 volatile 最好的文章
  3. 大厂面试算法系列-如何实现链表的逆序(一)-原地逆序
  4. Introduction to Microservices
  5. html5距离底部的距离代码,如何使距离为HTML5
  6. 软件开发工具比较 c/c++_做自媒体什么剪辑软件好用,分享几个好用的软件,看看你用过几个...
  7. AI迎来重要发展契机,开发者的机会在哪里?
  8. 190703每日一句
  9. 黑马python24期课件和代码_黑马Python 24期全套教程
  10. 精灵混合加密系统_混合云的数据备份
  11. 架构师主要做些什么,你知道吗?
  12. 运放输入偏置电流方向_运算放大器+仪表放大器:如何为偏置电流提供直流回路?...
  13. JS正则匹配实例邮箱、手机号、电话、货币
  14. 转 C++压缩解压之snappy
  15. 如何更改Google文档的默认格式设置
  16. OpenCV学习笔记(6)基于 VC+OpenCV+DirectShow 的多个摄像头同步工作
  17. Python之排序函数总结
  18. luoguP4168: [Violet]蒲公英
  19. 如何用几何画板绘制立体圆锥体
  20. 我的世界服务器php插件制作教程,我的世界服务器制作教程 服务器怎么做

热门文章

  1. 我去图书馆-抢座助手
  2. ubuntu 安装GPU黑屏 修改GRUB_Windows 10 amp; Ubuntu 18.04LTS双系统安装
  3. 计算机视觉论文-2021-07-21
  4. 越狱与不越狱的区别 越狱有什么好处 越狱的优点
  5. ai 自动外呼 微信加好友_制作一个可爱的Pwnagotchi AI好友来自动审核Wi-Fi网络
  6. ResHacker使用小解
  7. mzy git学习,分支冲突,以及冲突解决(五)
  8. 免费万能视频格式转换器是一款功能强大的全能视频格式转换软件,支持多种视频格式转换。万能视频转换器可以将RM、RMVB
  9. 【SDX62】useradd: group ‘input‘ does not existERROR: libsystemdq: useradd command did not succeed.
  10. 电脑常见问题:能打开QQ但不能打开网页(DNS问题)