擅长:python、mysql、java
<p>您可以跟踪看到的最后一个值,并且仅当它与当前值相同时才附加到新列表:</p>
<pre><code>numbers = [1,1,2,4,5,6,5]
duplicates = []
previous = None
for n in numbers:
if n == previous:
duplicates.append(n)
previous = n
</code></pre>
<p>您还可以使用<code>zip</code>和切片列表,在循环时查看前面的项目:</p>
<pre><code>duplicates = []
for previous, item in zip(numbers, numbers[1:]):
if previous == item:
duplicates.append(item)
</code></pre>
<p>等价的<a href="http://treyhunner.com/2015/12/python-list-comprehensions-now-in-color/" rel="nofollow noreferrer">list comprehension</a>:</p>
<pre><code>duplicates = [
item
for previous, item in zip(numbers, numbers[1:]
if previous == item
]
</code></pre>
<p>请注意,如果重复项在一行中出现多次,则这两个项都会多次追加重复项</p>