https://py.checkio.org/mission/non-unique-elements/
Der Vorgang zum Entfernen nicht eindeutiger Elemente aus der Liste. Als Beispiel wird "[1, 3, 1, 3]" für "[1, 2, 3, 1, 3]" zurückgegeben.
v0.1
Ich habe alle folgenden Behauptungen bestanden, aber die Beschreibung ist kompliziert.
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")
Selbst wenn Sie sich den Vorschlag ansehen, heißt es, dass Sie list.append () verwenden sollten, sodass ich mir keine Verbesserung vorstellen kann.
v0.2
Ich beschloss, das Hinzufügen und Entfernen zu beenden.
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