如何检查列表中某个元素后面的元素的标识?

时间:2016-10-27 18:08:36

标签: python python-3.x

我正在创建一个函数来检查列表是否只包含不同特定元素右侧的某些元素,然后返回一个布尔值。但是我无法弄清楚如何获得定位,我将如何正确检查列表? “A”的任何权利必须为.才能返回True。如果有另一个字符串,则返回False

示例:

Area0   =   [['.',  '.',    'A',    'A',    '.',    '.']]

right_path_clear(Area)→True

Area1   =   [['.',  '.',    'A',    'A',    '.',    'e']]

right_path_clear(Area)→错误

我到目前为止的代码:

def right_path_clear(area):
    for i in len(area):
        if "A" in area[i] and area == '.':
            return True

2 个答案:

答案 0 :(得分:1)

怎么样:

def right_path_clear(area):
    for row in area:
        if ''.join(row).rstrip('.')[-1] == 'A':
            return True
    return False

答案 1 :(得分:1)

如果您不想使用任何额外的方法,您可以创建如下函数:

def right_path_clear(area):
    for row in area:
        for content in row[::-1]: # iterate in reverse order
            if content == '.':    
                continue     # continue iteration till it receives '.'
            elif content == 'A':
                return True  # apart from '.', if 'A' is encounter first, return True
            else:
                return False  # apart from '.', if first encountered value is other than 'A', return False

示例运行:

# Example 1
>>> Area0   =   [['.',  '.',    'A',    'A',    '.',    '.']]
>>> right_path_clear(Area0)
True

# Example 2
>>> Area1   =   [['.',  '.',    'A',    'A',    '.',    'e']]
>>> right_path_clear(Area1)
False