https://py.checkio.org/mission/non-unique-elements/
Processus de suppression des éléments non uniques de la liste. Par exemple, il renvoie «[1, 3, 1, 3]» pour «[1, 2, 3, 1, 3]».
v0.1
J'ai passé toutes les affirmations ci-dessous, mais la description est compliquée.
from collections import Counter
def checkio(data):
print(list(data))
counter = Counter(data)
pickups = []
for num, cnt in counter.most_common():
if cnt > 1:
pickups.append(num)
reslist = []
for elem in data:
for flt in pickups:
if elem is flt:
reslist.append(elem)
#print(list(reslist))
return reslist
#Some hints
#You can use list.count(element) method for counting.
#Create new list with non-unique elements
#Loop over original list
if __name__ == "__main__":
#These "asserts" using only for self-checking and not necessary for auto-testing
assert list(checkio([1, 2, 3, 1, 3])) == [1, 3, 1, 3], "1st example"
assert list(checkio([1, 2, 3, 4, 5])) == [], "2nd example"
assert list(checkio([5, 5, 5, 5, 5])) == [5, 5, 5, 5, 5], "3rd example"
assert list(checkio([10, 9, 10, 10, 9, 8])) == [10, 9, 10, 10, 9], "4th example"
print("It is all good. Let's check it now")
Même si vous regardez la suggestion, elle indique que vous devriez utiliser list.append (), donc je ne peux penser à aucune amélioration.
v0.2
J'ai décidé d'arrêter de l'ajouter et de le supprimer.
from collections import Counter
def checkio(data):
print(list(data))
counter = Counter(data)
removes = []
for num, cnt in counter.most_common():
if cnt == 1:
removes.append(num)
for elem in removes:
data.remove(elem)
#print(list(reslist))
return data
#Some hints
#You can use list.count(element) method for counting.
#Create new list with non-unique elements
#Loop over original list
if __name__ == "__main__":
#These "asserts" using only for self-checking and not necessary for auto-testing
assert list(checkio([1, 2, 3, 1, 3])) == [1, 3, 1, 3], "1st example"
assert list(checkio([1, 2, 3, 4, 5])) == [], "2nd example"
assert list(checkio([5, 5, 5, 5, 5])) == [5, 5, 5, 5, 5], "3rd example"
assert list(checkio([10, 9, 10, 10, 9, 8])) == [10, 9, 10, 10, 9], "4th example"
print("It is all good. Let's check it now")
Recommended Posts