I have a list.
the_list = ['Donald Trump has', 'Donald Trump has small fingers', 'What is going on?']
dups_removed = list_of_strings[:]
for i in xrange(len(list_of_strings)):
list_of_strings.sort(key = lambda s: len(s))
while j <= len(list_of_strings)-1:
if list_of_strings[i] in list_of_strings[j]:
You can do this without sorting:
the_list = ['Donald Trump has', "I've heard Donald Trump has small fingers", 'What is going on?'] def winnow(a_list): keep = set() for item in a_list: if not any(item in other for other in a_list if item != other): keep.add(item) return [ item for item in a_list if item in keep ] winnow(the_list)
Sorting may allow fewer comparisons overall, but that seems highly data-dependent, and could be a premature optimization.