python - 在矩阵中查找单词
问题描述
我有一个矩阵文件(python 读起来像一个列表列表),我需要判断来自不同文件的单词是否在给定方向上出现在该矩阵中。例如:给定这个矩阵:
c,a,T,e
o,a,t,s
w,o,t,e
n,o,l,e
的话:
caT, cow, own, cat
和方向:
downright (diagonal)
我期望输出:
cat:1
和方向:
down, right
我预计:
cow:1
own:1
cat:1
我的功能设置如下:
def word_finder(word_list,matrix, directions):
我发现很难做的是遍历列表列表并遍历例如水平或对角线的索引:( 谢谢帮助
解决方案
尝试这个:
from itertools import chain
from collections import defaultdict
matrix= [['c', 'a', 'T', 'e'],
['o', 'a', 't', 's'],
['w', 'o', 't', 'e'],
['n', 'o', 'l', 'e']]
words = ['caT', 'cow', 'own', 'cat']
d = defaultdict(int)
for i in chain(matrix, list(zip(*matrix))): # list(zip(*matrix)) is for down direction
for word in words:
if word in ''.join(i):
d[word] = d[word] + 1
这d
将是您的预期输出。{'caT': 1, 'cow': 1, 'own': 1}
推荐阅读
- sql - Oracle 中看似关键的保留视图的更新引发 ORA-01779
- javascript - Jquery验证插件多次提交在Safari中不起作用
- laravel-5.2 - Cashier 6.0 与 Stripe API 的兼容性 15/08/2017
- sql - 计数不起作用
- python - matplotlib 图通过循环填充不同的层,着色
- pandas - 在 pandas 中行的数组
- r - ggplot2::geom_smooth(): 什么有助于线条的“平滑度”?
- debugging - 为什么进入过滤对象集中包含的功能组时,图层感知调试功能没有停止?
- docker - 在临时 Docker 映像上安装 Bash
- .htaccess - 使用 htaccess 在子域上设置 SSL - 主域正在使用 ssl