我正在创建一个函数来检查列表是否只包含不同特定元素右侧的某些元素,然后返回一个布尔值。但是我无法弄清楚如何获得定位,我将如何正确检查列表? “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
答案 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