Skip to content

Instantly share code, notes, and snippets.

@azdafirmansyah
Created November 30, 2017 06:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save azdafirmansyah/7df94c74646c4c5d02c3bc430cc03435 to your computer and use it in GitHub Desktop.
Save azdafirmansyah/7df94c74646c4c5d02c3bc430cc03435 to your computer and use it in GitHub Desktop.
List Overlap Comprehensions
'''
Exercise URL : http://www.practicepython.org/exercise/2014/04/10/10-list-overlap-comprehensions.html
This week’s exercise is going to be revisiting an old exercise (see Exercise 5), except require the solution in a different way.
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 returns a list that contains only the elements that are common between the lists (without duplicates). Make sure your program works on two lists of different sizes. Write this in one line of Python using at least one list comprehension. (Hint: Remember list comprehensions from Exercise 7).
The original formulation of this exercise said to write the solution using one line of Python, but a few readers pointed out that this was impossible to do without using sets that I had not yet discussed on the blog, so you can either choose to use the original directive and read about the set command in Python 3.3, or try to implement this on your own and use at least one list comprehension in the solution.
Extra:
Randomly generate two lists to test this
'''
import random
list_one = random.sample(range(15),10)
print(list_one)
list_two = random.sample(range(15),12)
print(list_two)
list_three = [x for x in list_one if x in list_two]
print(list_three)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment