检查列表中当前元素任一侧的元素



我有一个数组:

array1 = [0, 0, 0, 1, 1, 2, 1, 2, 2, 1]

我想遍历元素,如果有一个2不在另一个2的旁边,无论是在左边还是右边,我想把这个2转换成1。我可以创建一个新的数组,而不是修改旧的数组,但我不知道如何"检查";阵列两侧的元素首先是什么。

您可以在原始数组的开头和结尾用-1填充以避免索引错误,然后迭代,然后删除填充,如下所示。

array1 = [0, 0, 0, 1, 1, 2, 1, 2, 2, 1]
array1.insert(0, -1)
array1.append(-1)
for i in range(1, len(array1) - 1):
if array1[i] == 2 and array1[i-1] != 2 and array1[i+1] != 2:
array1[i] = 1
array1 = array1[1:-1]
print(array1)

它打印[0,0,0,1,1,1,2,2,1]

array1 = [0, 0, 0, 1, 1, 2, 1, 2, 2, 1]
array2 = []
for i in range(len(array1)):
if array1[i] == 2:
if array1[i-1] != 2 and array1[i+1] != 2:
array2.append(1)
else:
array2.append(2)
else:
array2.append(array1[i])

将给予[0, 0, 0, 1, 1, 1, 1, 2, 2, 1]

最新更新