Python中文
首页
教程
问答
标签
搜索
登录
注册
简洁地确定一对在一个较长的lis中存在多少次
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在编写一大块代码,我想缩短长度<code>or</code>表达式。 假设我们有一个列表,比如:</p> <pre><code>farm = ["cow","cow","cow", "hen","hen","hen", "fox","fox","fox", "hen","hen", "hen"] lookup = ["cow","hen"] </code></pre> <p>我应该检查在<code>farm</code>列表中是否有<code>lookfor</code>的三个连续元素。你知道吗</p> <p>一种方法是:</p> <pre><code>for i in range (0,len(farm) - 2): if ((farm[i] == farm[i+1] == farm[i+2] == lookup[0]) or (farm[i] == farm[i+1] == farm[i+2] == lookup[1])): # do something </code></pre> <p>现在,如果<code>lookup</code>中的元素数很小,可以用上面的方法来写。但是,如果太长,代码看起来很麻烦,而且很难维护。有没有一种更简洁的方法来编写代码,也许是以列表理解格式编写的,这样我就不必手动编写来查找<code>lookup</code>的所有元素了?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>试试这个</p> <pre><code>gr = [(k,len(list(ns))) for k,ns in itertools.groupby(farm)] for k in lookup: if (k,3) in gr: print k </code></pre> <p>将检查精确的连续三个键。对于至少三个,您可以按大小筛选组,并检查每个条目是否在查找中。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
10 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
2 回答
在Python3中使用Script=argv
10 回答
在python3中使用selenium webdriver进行未解析的回溯
2 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
10 回答
在Python3中使用Selenium和Requests模块从网页获取文件
8 回答
在python3中使用SIGINT终止函数
7 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
9 回答
在python3中使用smtplib发送XML内容
6 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
6 回答
在python3中使用sounddevice和numpy编写wav文件
2 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
5 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
2 回答
在python3中使用SQLite的FTS3/4
10 回答
在Python3中使用struct.calcsize()和len()有区别吗?
1 回答
在python3中使用substring函数时发生TypeError
10 回答
在Python3中使用Tkinter entry小部件写入串行设备
1 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
5 回答
在python3中使用tkinter的子帧
1 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
9 回答