How do I find the duplicates in a list and create another list with them?
In Python, one way to find duplicates in a list and create another list with them is to use a for loop and an if statement.
In Python, one way to find duplicates in a list and create another list with them is to use a for loop and an if statement. Here is an example code snippet:
Find duplicates in a list and create another list with them in Python
original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8]
duplicate_list = []
for i in original_list:
if original_list.count(i) > 1:
if i not in duplicate_list:
duplicate_list.append(i)
print(duplicate_list)This code first creates an empty list called "duplicate_list" to store the duplicates. Then, it iterates through the elements of the "original_list" using a for loop. For each element, it checks if the count of that element in the "original_list" is greater than 1 (i.e., if it is a duplicate). If it is, it then checks if the element is already in the "duplicate_list", and if not, it adds it to the "duplicate_list". Finally, it prints out the "duplicate_list".
Alternatively, you can use a list comprehension to achieve the same logic more concisely. Note that this approach returns each duplicate multiple times:
Find duplicates in a list and create another list with them in Python using list comprehension
original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8]
duplicate_list = [item for item in original_list if original_list.count(item) > 1]
print(duplicate_list)This code snippet uses list comprehension and the count() function to filter elements that appear more than once. Like the first approach, it has O(n²) time complexity because count() scans the list for every item. For larger datasets, or when you need unique duplicates only, collections.Counter is more efficient:
Find duplicates in a list using collections.Counter
from collections import Counter
original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8]
counts = Counter(original_list)
duplicate_list = [item for item, count in counts.items() if count > 1]
print(duplicate_list)This approach counts all elements in a single pass (O(n) time complexity) and filters those with a count greater than 1, ensuring each duplicate appears only once in the result.