python - 一次访问数组中的一行
问题描述
假设我有一个字符串矩阵
array = [['hello', 'how', 'are', 'you'],
['I', 'am', 'doing', 'okay'],
['Okay', 'did','you', 'do', 'your', 'hw','?']]
而且我想每隔一行搜索关键词,因为假设对话中有两个人。
例如,矩阵有 3 行,每奇数行对应人 A,每偶数行对应人 B。
但是,我只关心 A 写了什么,因为我只搜索 A 说的话。
解决方案
这是一个例子。您的问题并没有说明您想对匹配行做什么,但想法是您使用 slice 跳过所有其他行[::2]
。这确实会创建列表的副本,因此直接使用索引xrange(0, len(array), 2)
可能会更有效(range()
在 Python3 中使用)。
keywords = ['did', 'you']
array = [['hello', 'how', 'are', 'you'],
['I', 'am', 'doing', 'okay'],
['Okay', 'did','you', 'do', 'your', 'hw','?']]
print [line for line in array[::2] if any(key in line for key in keywords)]
推荐阅读
- javascript - 使用 putImageData 时我没有正确使用循环
- varnish - 如何访问 API Platforms 发行版 2.4.2 中的管理组件?
- elasticsearch - 在elasticsearch上复制文档
- apache-spark - 在将作业提交给执行者之前引发长时间的延迟
- codenameone - 代号一中的 container.setLeadComponent(...)
- java - JavaFx 等效于节点的 Graphics context.rotate()
- qt - 如何使用 QMetaObject::activate 触发信号
- mysql - CROSS JOIN和INNER JOIN、LEFT JOIN、RIGHT JOIN、OUTER JOIN的区别
- javascript - 如何在不重新加载页面的情况下显示 django 消息?
- php - 如何从 URL 中删除 /public?