File tree Expand file tree Collapse file tree 1 file changed +24
-7
lines changed Expand file tree Collapse file tree 1 file changed +24
-7
lines changed Original file line number Diff line number Diff line change 1111f .close ()
1212
1313duplicates = []
14- for name_1 in names_1 :
15- for name_2 in names_2 :
16- if name_1 == name_2 :
17- duplicates .append (name_1 )
1814
19- end_time = time .time ()
20- print (f"{ len (duplicates )} duplicates:\n \n { ', ' .join (duplicates )} \n \n " )
21- print (f"runtime: { end_time - start_time } seconds" )
15+ # loops through names 2 for every name in name_1
16+ # loops through 10,000 names 10,000 times
17+
18+ # for name_1 in names_1:
19+ # for name_2 in names_2:
20+ # if name_1 == name_2:
21+ # duplicates.append(name_1)
22+
23+ # runtime: 6.5317909717559814 seconds
24+
25+ # loops through names_2 and checks if it is in names_1_set
26+ # sets have no index or slicing and can hold any type of data
27+ # membership tests are faster in a set because they use a hash table
28+ # so a set will reduce one of our for loops to a O(1) operation
2229
30+ names_1_set = set (names_1 )
31+ for name in names_2 :
32+ if name in names_1_set :
33+ duplicates .append (name )
34+
35+ # runtime: 0.003815174102783203 seconds
36+
37+ end_time = time .time ()
38+ print (f"{ len (duplicates )} duplicates:\n \n { ', ' .join (duplicates )} \n \n " )
39+ print (f"runtime: { end_time - start_time } seconds" )
You can’t perform that action at this time.
0 commit comments