将Python列表中的当前项与下一项进行比较

6

考虑一个Python列表,如何比较当前项与下一项?例如:

mylist = [1, 2, 2, 4, 2, 3]
for i in mylist:        
    if i == next item:
       replace (both i and next item) with "same value"

 >>> [1, "same value", "same value", 4, 2, 3]  

通用解决方案是:Python中的滚动或滑动窗口迭代器 - Martijn Pieters
1个回答

26
你可以使用enumerate:
mylist = [1, 2, 2, 4, 2, 3]
for i, j in enumerate(mylist[:-1]):
    if j  == mylist[i+1]: 
        mylist[i] = "foo" 
        mylist[i+1] = "foo"
print mylist
[1, 'foo', 'foo', 4, 2, 3]

j 是当前迭代中的元素,mylist[i+1] 是下一个元素,如果 j=4mylist[i+1] = 2 等等。 mylist[:-1] 循环遍历除最后一个元素外的所有元素,因此最后一个 mylist[i+1] 获取列表中的最后一个元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接