【发布时间】:2017-03-02 14:00:41
【问题描述】:
我有一个必须在学校完成的练习,但我有点卡住了。 我必须编写一个函数来告诉你照片上是否有一张脸,通过照片我们可以想象一个 2D 列表,所以一个包含更多列表的列表来创建一个 2 维对象。面由 2x2 正方形表示,其中包含单词 face,这些字母可以是随机顺序。如下图一、二:
还可以有更多的面,只要单词 face 在整个 2Dlist 中至少显示一次,它就应该返回 True。
问题是字母不能在一行或一列中,如图 III 所示。我真的不知道如何制定一个可以消除这种情况的条件。到目前为止,我知道如何找出所有字母是否都在该 2Dlist 中,并且我消除了只有一行或一列的可能性,如图 IV 所示。和V..
这是我目前所拥有的:
def is_face_on_photo(photo):
list2D = photo
faces = ['f','a','c','e']
newlist = []
for list in list2D:
for letter in list:
newlist.append(letter)
if 'f' in newlist and 'a' in newlist and 'c' in newlist and 'e' in newlist and (faces not in list2D) and (len(list2D) >= 2) and (len(list2D[0]) >= 2):
print True
else:
print False
pass
我是 python 新手,所以如果能得到任何帮助,我将不胜感激 :) 非常感谢
【问题讨论】:
-
我认为图三是无效的,因为它包含的两个“脸”方块相互重叠。
-
“他的问题是字母不能在一行或一列中,如图三所示..”你是指图四吗?
-
您的图片中哪些有效,哪些无效?
-
I. II.三。有效
标签: python list face-detection