我想用一维列表编写一个简单的Conway生活游戏版本。 如何比较列表中的每个相邻元素?
例如,第一个规则是,如果元素(1)的左右邻居也是1,则应将其更改为0
list = [0 , 1, 1, 1, 0, 1]
# after implementation
# [0 , 1, 0, 1, 0, 1]
答案 0 :(得分:0)
您知道len(),range()以及如何access列表中的元素吗?您可以使用这三个链接来根据需要更改输入列表。
如果您不想更改输入,则可以仅使用以下功能来“复制”列表:copy = list(original)
。另一个更高级的解决方案将使用generators。
答案 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)