Предизвикателства > Полиморфичен негативизъм > Решения > Решението на Мирослав Стояновски

Резултати
1 точки от тестове
0 точки от учител

1 точки общо

5 успешни теста
0 неуспешни теста
Код

 1def no_it_isnt(elements):
 2    result = []
 3    for item in elements:
 4        if type(item) in (int, float):
 5            result.append(-item)
 6        elif type(item) == bool:
 7            result.append(not item)
 8        elif type(item) == str:
 9            result.append(item[::-1])
10    return list(reversed(result))

.....
----------------------------------------------------------------------
Ran 5 tests in 0.000s

OK

Дискусия
Мирослав Стояновски
18.10.2023 23:12

Тва вече е финалното решение :)
Мирослав Стояновски
18.10.2023 23:11

НЕ ГО ГЛЕДАЙТЕ ТВА, ФАЙЛЪТ НЕ СЕ СЕЙВНА
Георги Кунчев
18.10.2023 13:00

Got it. Да прав си. Не забелязах, че променяш елементите в оригиналния списък. НОО, както и вчера говорихме, това е "страничен ефект" и трябва да се избягва на всяка цена. Не искаш да променяш списъка, който влиза. Искаш да напрвиш нов, който да върнеш.
Мирослав Стояновски
18.10.2023 12:27

Ако ползвам for item in elements вместо for цикъла с индексацията, след изпълнението на функцията елементите на листа остават непроменени, затова реших да ползвам цикъл с индекси.
История

n1 n
2 
3def no_it_isnt(elements):1def no_it_isnt(elements):
4    result = []2    result = []
5    for item in elements:3    for item in elements:
6        if type(item) in (int, float):4        if type(item) in (int, float):
7            result.append(-item)5            result.append(-item)
8        elif type(item) == bool:6        elif type(item) == bool:
9            result.append(not item)7            result.append(not item)
10        elif type(item) == str:8        elif type(item) == str:
11            result.append(item[::-1])9            result.append(item[::-1])
12    return list(reversed(result))10    return list(reversed(result))
t13 t
14print(no_it_isnt([123,'abc',True]))
15 
16#1 1 1 5 5 5 7 7 9 9
17#1 8
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op

nn1 
2 
1def no_it_isnt(elements):3def no_it_isnt(elements):
n2    for i in range(len(elements)):n4    result = []
3        if (type(elements[i]) == int or type(elements[i]) == float):5    for item in elements:
4            elements[i] = - elements[i]6        if type(item) in (int, float):
7            result.append(-item)
5        if (type(elements[i]) == bool):8        elif type(item) == bool:
6            elements[i] = not elements[i]9            result.append(not item)
7        elif (type(elements[i]) == str):10        elif type(item) == str:
8            elements[i]=elements[i][::-1]11            result.append(item[::-1])
9    return list(reversed(elements))12    return list(reversed(result))
1013
11print(no_it_isnt([123,'abc',True]))14print(no_it_isnt([123,'abc',True]))
tt15 
16#1 1 1 5 5 5 7 7 9 9
17#1 8
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op