Найти - Пользователи
Полная версия: почему
Начало » Python для новичков » почему
1
dima757
В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка.[
a = [int(i) for i in input().split()]
for i in range(len(a)):
    a[a.index(max(a))], a[a.index(min(a))] = a[a.index(min(a))], a[a.index(max(a))]
print(' '.join([str(i) for i in a]))     
почему с одним списком работает, а с другим выводит первоначальный вариант
ZerG
покажите списки - как мы угадать можем то?
dima757
ok
3 4 5 2 1
1 5 4 3 2
-30000 30000
2147483647 -2147483648
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 17 16 15 14
1 2 3 4 5 6 7 8 9 10
10 9 8 7 6 5 4 3 2 1
1
типо таких
marvellik
dima757
почему с одним списком работает,
потому как в цикле ты их постоянно обмениваешь поэтому если длина списка четная то результат не верный.вообще то в цикле лучше найти индексы мин и мах элементов и потом выйдя из цикла их обменять местами.можно вообще без цикла обойтись но в источнике задачи эталонное решение сделано именно через цикл так что
"О сколько нам открытий чудных Готовят просвещенья дух
И опыт, сын ошибок трудных, И гений, парадоксов друг"
А.С.Пушкин
dima757
marvellik спасибо!!!! Пушкин зажигает
a = [int(i) for i in input().split()]
b = 0
c = 0
for i in a:
    b = a.index(min(a))
    c = a.index(max(a))
a[c], a[b] = a[b], a[c]    
print(' '.join([str(i) for i in a]))
такая хрень вышла
marvellik
по твоему решению цикл вообще не нужен ты в цикле перебираешь список и каждый раз присваиваешь переменным индексы мах и мин элементов. тут проще намного
a = [int(i) for i in input().split()]
b = a.index(min(a))
c = a.index(max(a))
a[c], a[b] = a[b], a[c]    
print(' '.join([str(i) for i in a]))
и как с циклом решается обрати внимание что в цикле происходит и для чего он нужен так как по занятиям с функциями мин и мах еще не ознакомили
a = [int(s) for s in input().split()]
index_of_min = 0
index_of_max = 0
for i in range(1, len(a)):
    if a[i] > a[index_of_max]:
        index_of_max = i
    if a[i] < a[index_of_min]:
        index_of_min = i
a[index_of_min], a[index_of_max] = a[index_of_max], a[index_of_min]
print(' '.join([str(i) for i in a]))
это эталонное решение с сайта
dima757
я понял, просто забыл убрать(или лень)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB