0
non unique elements list
#********************************** ## NonuniqueElements.py ## Created: Fares Younis ## Change history: ## 22.05.2017 # FARES YOUNIS #********************************** #return a list consisting of only the non-unique elements in this list. #To do so you will need to remove all unique elements (elements which are contained in a given list only once). https://code.sololearn.com/ckELfU9UCjHJ/?ref=app
1 Odpowiedź
+ 1
Looks good, nice comments.
Just wanted to point out that the complexity of your method is O(n^2) because List.count() is O(n) and you're calling it in a while loop. You can bring it down to O(n) by using a counting dictionary -
def nonunique(listX):
print('Number of Element in this list:' + str(len(listX)))
countingDictionary = dict()
for i in listX:
countingDictionary [i] = countingDictionary.get(i, 0) + 1
for key in countingDictionary.keys():
if countingDictionary[key] <= 1:
listX.remove(key)
return listX