import concurrent.futures import requests def has_wikipedia_page(name): response = requests.get( 'http://en.wikipedia.org/wiki/%s' % name.replace(' ', '_') ) return response.status_code == 200 if __name__ == '__main__': people = ( 'Barack Obama', 'Shimon Peres', 'Justin Bieber', 'Some guy I saw on the street', 'Steve Buscemi', 'My first-grade teacher', 'Gandhi' ) people_who_have_wikipedia_pages = ( 'Barack Obama', 'Shimon Peres', 'Justin Bieber', 'Steve Buscemi', 'Gandhi' ) with concurrent.futures.ThreadPoolExecutor(100) as executor: print('These people have a page on Wikipedia:') for person in (person for person, filter_result in zip(people, executor.map(has_wikipedia_page, people)) if filter_result): print(person)