Common Elements Between Two Lists With No Duplicates
Problem is this, take two lists, say for example these two: a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] And write a program that ret
Solution 1:
- You are appending a list containing
i
toc
, soi not in c
will always returnTrue
. You should appendi
on its own:c.append(i)
Or
Simply use sets (if order is not important):
a = [1, 1, 2, 2, 3, 5, 8, 13, 21, 34, 55, 89] b = [1, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] c = set(a) & set(b) # & calculates the intersection.print(c) # {1, 2, 3, 5, 8, 13}
EDIT As @Ev. Kounis suggested in the comment, you will gain some speed by using
c = set(a).intersection(b)
.
Solution 2:
using list comprehensions, l think it had be short and simple if it was implemented as following
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
[i for i in a and b if i in a and b]
result:
[1, 2, 3, 5, 8, 13]
Solution 3:
The below code would work:
newlist = []
for x in b:
if x in a:
if x in newlist:
print("duplicate")
else:
newlist.append(x)
for y in newlist:
print(y)
Solution 4:
Using intuition of sets, You could do something like this...
filtered_arr = list(set(b)-set(a))
First you convert 2 arrays into sets, then take the substitute of it convert the result into the list again.
Solution 5:
c = []
for items in a:
for numbers in b:
if items == numbers:
if items in c:
Noneelse:
c.append(items)
print(c)
Post a Comment for "Common Elements Between Two Lists With No Duplicates"