首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python列表检查

Python列表检查
EN

Stack Overflow用户
提问于 2016-11-14 00:12:03
回答 1查看 55关注 0票数 0

因此,在一个列表中,我需要检查'z‘是否与所选的情况相同,并返回True,但是如果有什么东西在路上,例如'x’,它就返回False。我做了一个代码,但问题是,如果有两个‘z’,左边的一个被'x‘阻塞,而另一个不是,则返回False,但应该是True。对其他案件来说很好。希望你能理解我,我很难解释这些事情。

代码语言:javascript
复制
def row(lst,i,j):
    c = 0
    if 'z' not in lst[i]:
        c += 1
    else:
        for n in range(0,len(lst[i])):
            if lst[i][n] == 'z' and n > j:
                for m in range(j,n):
                    if lst[i][m] == 'x':
                        c += 1
                    else:
                        c = 0
                break

            if lst[i][n] == 'z' and j > n:
                for m in range(n,j):
                    if lst[i][m] == 'x':
                        c += 1
                    else:
                        c = 0
                break

    if c > 0:
        return False
    elif c == 0:
        return True

我真的不知道这里到底是什么“破坏”,但我使用的列表是:

代码语言:javascript
复制
lst = [['_','_','_','_','_'],['z','x','_','_','z'],['_','_','x','_','_']]

我正在调查的案子是lst1。

代码语言:javascript
复制
['_','x','_','_','z']

返回True,行中有'z‘。

代码语言:javascript
复制
['_','x','_','x','z']

返回False,z被阻塞。

代码语言:javascript
复制
['z','x','_','x','z']

返回假

代码语言:javascript
复制
['z','x','_','_','z']

问题:应该返回真

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-14 01:36:35

这一行有两半要检查。(i,j)之前的(i,j)和(i,j)后面的。

问题是你还没到下半场就已经崩溃了。另外,我不知道你在和c做什么。

无论如何,一个解决办法可以是:

代码语言:javascript
复制
def check_row(lst, i, j):
    if 'z' not in lst[i]:
        return False

    for n in range(j, 0, -1):
        if lst[i][n] == 'z':
            return True
        elif lst[i][n] == 'x':
            break

    for n in range(j + 1, len(lst[i])):
        if lst[i][n] == 'z':
            return True
        elif lst[i][n] == 'x':
            break

    return False

这样做的目的是从目标值中寻找。首先,我们从目标循环到行的前面,然后从目标循环到行的末尾。在任何时候,如果它遇到'z',我们立即返回True。如果它遇到'x',我们就在那个方向中断搜索。我们被封锁了。

如果我们到达终点,这意味着我们还没有找到'z',所以我们返回False。

这可能会大大缩短,但这个基本版本应该可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40580259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档