python双循环zip_Python如何同时进行两个循环
想写这样一个逻辑
for i in lit:
for j in lit:
do_something(i, j)
但是感觉这样写好丑,有没有比较优美的写法?
用
itertools
的笛卡尔积
from itertools import product
for i, j in product(lit, lit):
do_something(i, j)
product
返回一个生成器,能
yield
出传入数组形成的笛卡尔积。
product
可以接受任意多个数组。
我来补上一刀:
# 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')
('!', '!')
最近刷了一道leetcode的题目【two sum】,感觉思路很好哇,也和循环有关系。
Giver numers=[2, 7, 11, 15],target=9, because 2+7=9, then return indexs [0,1].
刚开始,想用2重循环做的,发现时间超时(时间复杂度太高)
然后想一下1重循环也可以搞定的,每次记录下你得到的信息(使用map了),减小了时间复杂度。
最好不要用2重循环,感觉好浪费时间哦~
izip 不行?
python双循环zip_Python如何同时进行两个循环相关推荐
- python双循环zip_Python 并行遍历zip()函数使用方法
今天我们要讲主题是python并行遍历zip()函数使用方法.在讲range()函数使用方法时我们知道了,range()可以在for循环中是以非完备的方式遍历序列,那么zip()并行遍历又是怎么工作的 ...
- 简单介绍python连接telnet和ssh的两种方式
本文主要介绍了python连接telnet和ssh的两种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Telnet 连接方式 #!/usr/bin/env p ...
- python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict)
python中使用zip函数基于两个列表数据list创建字典dict数据(Create a dictionary by passing the output of zip to dict) 目录
- python要学多久-python需要学多久?自学两年也很难达到企业标准!
原标题:python需要学多久?自学两年也很难达到企业标准! python学习需要多久?这是许多初学者都关心的问题.的确,零基础学习python是非常不错的选择,Python功能强大.语法简单.上手容 ...
- python 读取wav 音频文件的两种方式
python 中,常用的有两种可以读取wav音频格式的方法,如下所示: 1 import scipy 2 from scipy.io import wavfile 3 4 import soundfi ...
- python为什么closed_为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed])...
为什么python类的函数被调用两次[关闭](Why a function of python class is called twice [closed]) 我遇到了两次调用的python类函数的问 ...
- 20190508——python基础(if...in...循环语句、while循环、两种循环对比)
二.python基础(if...in...循环语句.while循环.两种循环对比) 1.for...in...循环语句 1)for循环:空房间 # 空房间的学名叫[元素](item),因为英文是ite ...
- python repair修复功能_详解Python修复遥感影像条带的两种方式
GDAL修复Landsat ETM+影像条带 Landsat7 ETM+卫星影像由于卫星传感器故障,导致此后获取的影像出现了条带.如下图所示, 影像中均匀的布满条带. 使用GDAL修复影像条带的代码如 ...
- 奇怪,有的Python函数或方法调用需要两对括号?
本文源自于一位读者的问题:为啥有的函数或方法调用要使用两对括号呢? 但是在我的印象里并没有这种用法啊.于是我简单扫了一眼代码,发现这位朋友说的并不是函数调用需要两对括号,而是使用元组做函数或方法的参数 ...
最新文章
- 模式 - 收藏集 - 掘金
- V3S拍照上传又拍云bug排查过程
- python负数取余 整除运算
- linux c之使用#define定义多行函数总结
- RESTful开发风格
- 页表长度和页表大小_linux内核页表映射机制:线性地址如何转为物理地址?
- feedback vertex set problem (FVS) 反馈顶点集问题 是什么
- 收藏 | 史上最详细的 Landsat 1-9 系列数据集介绍~
- 2022-2027年中国家用清洁产品行业发展监测及投资战略研究报告
- 2016届毕业设计(论文) 基本规范及档案袋封面填写要求
- 关于checksum校验和算法
- JAVA编写元音字母(Switch语句)
- logTracker错误日志跟踪组件(二)
- !!return——执行了return语句,后面的语句将不会执行!!
- MATLAB机器学习进阶
- JS--数据类型--渡一教育(视频笔记)
- FreeBSD硬盘分区和数据迁移相关资料
- 网易云音乐、QQ音乐等映射网络路径(下载选SQ或者hires即可 其他太大了……)
- 爬虫(9) - Scrapy框架(1) | Scrapy 异步网络爬虫框架
- CE与欧盟指令(转载)