如何比较列表中的左和右邻居元素

时间:2019-07-03 12:04:47

标签: python list

我想用一维列表编写一个简单的Conway生活游戏版本。 如何比较列表中的每个相邻元素?

例如,第一个规则是,如果元素(1)的左右邻居也是1,则应将其更改为0

list = [0 , 1, 1, 1, 0, 1]

# after implementation
# [0 , 1, 0, 1, 0, 1]

3 个答案:

答案 0 :(得分:0)

您知道len()range()以及如何access列表中的元素吗?您可以使用这三个链接来根据需要更改输入列表。

如果您不想更改输入,则可以仅使用以下功能来“复制”列表:copy = list(original)。另一个更高级的解决方案将使用generators

请勿调用诸如built-in函数或类型之类的变量。如果这样做,那么将不再(轻松)访问提到的list()

答案 1 :(得分:0)

您可以通过遍历list1的长度来访问每个元素。然后通过1对1进行比较。

list1 = [0 , 1, 1, 1, 0, 1]
new_list = []

for i in range(0, len(list1)):
    if i == 0 or i == len(list1):
        new_list.append(list1[i])
    else:
        if list1[i-1] == 1 and list1[i+1] == 1 and list1[i] == 1:
            new_list.append(0)
        else:
            new_list.append(list1[i])

new_list将为您提供所需的[0 , 1, 0, 1, 0, 1]输出。希望这会有所帮助。

答案 2 :(得分:-1)

您能更具体一点吗?据我了解,我认为这会对您有所帮助。

list1 = [0 , 1, 1, 1, 0, 1]
for i in range(len(list1)):
    if list1[i]==1:
        if i!=(len(list1)-1) and list1[i+1]==list1[i-1]==1:
            list1[i]=0
            i=0
print(list1)