向左或向右移动列表 1 列表中的字符。移动后 return 如果可能则为真,否则为假
Shifting character in list of list 1 position left or right. After shifting return true if it was possible and false if it wasn't
随机字符被指示向左或向右移动 1 个位置,如果可能并且 return 正确,如果不可能则 return 错误。
示例:
#Input:
[['.', 'B', 'B', '.', '.', '.']]
move_sideways("B", "RIGHT", lot0)
#Output:
True
[['.', '.', 'B', 'B', '.', '.']]
所以两个B都有可能向右移动一个位置。如果其中一个 B 处于第一个位置并被指示向左移动,它将 return False 因为这是不可能的。如果 B 处于最后位置并指示向右移动,则相同。
到目前为止,这是我的代码,但我真的不知道如何完成它。也许我会使用 pop
def move_sideways(symbol, direction, lst):
for symbol in range(len(lst))
lst[1:] + lst[:1]
return lst
这可能不是最有效的方法,但它确实有效。我很乐意回答有关它的任何问题,但我很快就要睡觉了。
def move_sideways(symbol, direction, lst):
if symbol not in lst:
print('symbol is not in list')
return False
ind = [i for i, x in enumerate(lst) if x == symbol] #retunrs a list of the index of every symbol in list [1,2] in given example
if direction == 'RIGHT':
if ind[-1]+1 == len(lst): #check to see if the right most move will go out of the list
return False
for x in ind[::-1]:
lst.insert(x+1,lst.pop(x)) #this will pop out every symbol and insert them back in one to the right
if direction == 'LEFT':
if ind[0] == 0: #checks if the left most symbol is at 0
return False
for x in ind:
lst.insert(x-1,lst.pop(x)) #this will pop out every symbol and insert them back in one to the left
return(True,lst) #return the new list and a True in a tuplit
。
>>> a = [['.', 'B', 'B', '.', '.']]
>>> print(move_sideways('B', 'RIGHT', a[0]))
(True, ['.', '.', 'B', 'B', '.'])
>>> a = [['.', 'B', 'B', '.', 'B']]
>>> print(move_sideways('B', 'RIGHT', a[0]))
False
随机字符被指示向左或向右移动 1 个位置,如果可能并且 return 正确,如果不可能则 return 错误。
示例:
#Input:
[['.', 'B', 'B', '.', '.', '.']]
move_sideways("B", "RIGHT", lot0)
#Output:
True
[['.', '.', 'B', 'B', '.', '.']]
所以两个B都有可能向右移动一个位置。如果其中一个 B 处于第一个位置并被指示向左移动,它将 return False 因为这是不可能的。如果 B 处于最后位置并指示向右移动,则相同。
到目前为止,这是我的代码,但我真的不知道如何完成它。也许我会使用 pop
def move_sideways(symbol, direction, lst):
for symbol in range(len(lst))
lst[1:] + lst[:1]
return lst
这可能不是最有效的方法,但它确实有效。我很乐意回答有关它的任何问题,但我很快就要睡觉了。
def move_sideways(symbol, direction, lst):
if symbol not in lst:
print('symbol is not in list')
return False
ind = [i for i, x in enumerate(lst) if x == symbol] #retunrs a list of the index of every symbol in list [1,2] in given example
if direction == 'RIGHT':
if ind[-1]+1 == len(lst): #check to see if the right most move will go out of the list
return False
for x in ind[::-1]:
lst.insert(x+1,lst.pop(x)) #this will pop out every symbol and insert them back in one to the right
if direction == 'LEFT':
if ind[0] == 0: #checks if the left most symbol is at 0
return False
for x in ind:
lst.insert(x-1,lst.pop(x)) #this will pop out every symbol and insert them back in one to the left
return(True,lst) #return the new list and a True in a tuplit
。
>>> a = [['.', 'B', 'B', '.', '.']]
>>> print(move_sideways('B', 'RIGHT', a[0]))
(True, ['.', '.', 'B', 'B', '.'])
>>> a = [['.', 'B', 'B', '.', 'B']]
>>> print(move_sideways('B', 'RIGHT', a[0]))
False