9 / 5 / 5
Регистрация: 08.04.2020
Сообщений: 93

Проблемы с работой со списками python

10.04.2020, 20:14. Показов 4230. Ответов 37

Студворк — интернет-сервис помощи студентам
Пишу вот такой код:
s=input()
s=s.split()
mi=int(s[1])
ma=int(s[1])
for i in range(1, len(s)):
if int(s[i])>int(ma):
ma=s[i]
if int(s[i])<int(mi):
mi=int(s[i])
pma=s.index(ma, [s[1] [len(s)]])
pmi=s.index(mi, [s[1] [len(s)]])
s.insert(pma, mi)
s.insert(pmi, ma)
для решения этой задачи: Поменять местами самый большой и самый маленький элементы списка. Код в целом работает топорно, выдаёт эту ошибку в разных вариациях: string index out of range. Где может быть ошибка? Я как-то неверно обращаюсь к элементу списка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.04.2020, 20:14
Ответы с готовыми решениями:

Проблемы с работой со списками python
Добрый день! Решаю вот такую задачу: Дан текстовый файл, содержащий целые числа. Удалить из него все четные числа. вот таким кодом: f...

Проблемы с работой со списками python
Решаю вот такую задачу: удалить из файла все чётные числа вот таким кодом:f = open(&quot;Anaconda.txt&quot;, &quot;r&quot;) data =...

Проблемы с работой со строками python
Добрый день! Я пытаюсь редактировать строку вот таким вот кодом: isk=str(input()) for i in range(0, len(isk)): if str(isk)=='A': ...

37
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.04.2020, 21:13
Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
 lst = list(map(int, input().split()))
5671
>>> max_el = lst.index(max(lst))
>>> min_el = lst.index(min(lst))
>>>
>>> # swap
>>> lst[max_el], lst[min_el] = lst[min_el], lst[max_el]
>>>
>>> print(*lst, sep=" ")
5671
Python
1
2
3
4
5
6
7
8
>>> lst = input()
5671
>>> lst = list(''.join(lst))
>>> max_el = lst.index(max(lst))
>>> min_el = lst.index(min(lst))
>>> lst[max_el], lst[min_el] = lst[min_el], lst[max_el]
>>> print(*lst, sep=" ")
5 6 1 7
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:16
Цитата Сообщение от Miryz Посмотреть сообщение
5 6 1 7
то есть вы сократили ввод до цифр от 0 до 9 вместо любых и это стало более универсально?

Добавлено через 42 секунды
Цитата Сообщение от Anacoder Посмотреть сообщение
Ещё один вопрос, а как конкретному элементу по индексу присвоить значение конкретного числа, переменной или элемента?
lst[index] = value
0
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
10.04.2020, 21:16
И если уж вообще по хорошему делать, то надо так:
Python
1
lst = map(int, input().split())
Так они сразу станут числами, а не строками.
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.04.2020, 21:17
Ну если писать слитно, то от 0 до 9, а если раздельно, то также.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:18
Цитата Сообщение от unfindable_404 Посмотреть сообщение
lst = map(int, input().split())
Цитата Сообщение от Jabbson Посмотреть сообщение
lst = list(map(int, input().split()))
как в 6 сообщении, да?
1
Эксперт Python
 Аватар для unfindable_404
693 / 471 / 204
Регистрация: 22.03.2020
Сообщений: 1,051
10.04.2020, 21:20
Цитата Сообщение от Jabbson Посмотреть сообщение
как в 6 сообщении, да?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:20
Цитата Сообщение от Miryz Посмотреть сообщение
Ну если писать слитно, то от 0 до 9, а если раздельно, то также.
Цитата Сообщение от Miryz Посмотреть сообщение
lst = input()
lst = list(''.join(lst))
вот тут join что объединяет?
0
10.04.2020, 21:21

Не по теме:


Вы меня простите, но я сваливаю. Вам и вдвоём тут не плохо)

0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.04.2020, 21:22
Ну да, можно записать как lst = list(lst)
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:25
Цитата Сообщение от Miryz Посмотреть сообщение
Ну если писать слитно, то от 0 до 9, а если раздельно, то также.
приведите пример, где вы вводите элементы 1, 10, 100 и они после обработки превращаются в [100, 10, 1]
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.04.2020, 21:27
Также, как у вас
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:28
Цитата Сообщение от Miryz Посмотреть сообщение
Ну да, можно записать как lst = list(lst)
можно, но это не то, что Вы делаете, вы берете строку и делаете ей join, а потом разбиваете на элементы по одному символу.

Добавлено через 1 минуту
вот мой пример

Python
1
2
3
4
5
6
7
8
9
10
>> lst = list(map(int, input().split()))
1 10 100
 
>> max_el = lst.index(max(lst))
>> min_el = lst.index(min(lst))
 
>> lst[max_el], lst[min_el] = lst[min_el], lst[max_el]
 
>> print(*lst, sep=" ")
100 10 1
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
10.04.2020, 21:37
Miryz, а вы заметили что ваш код не выполнил задачу?
Python
1
2
lst = list(map(int, input().split()))
5671
Python
1
2
>>> print(*lst, sep=" ")
5671
то есть что ввели то и вывели. вам Jabbson, конкретно объясняет почему так

Добавлено через 2 минуты
сравните
Python
1
2
3
4
5
6
7
8
>>> lst = list(map(int, list(input())))
5671
>>> max_el = lst.index(max(lst))
>>> min_el = lst.index(min(lst))
>>> lst[max_el], lst[min_el] = lst[min_el], lst[max_el]
>>> print(*lst)
5617
>>>
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
10.04.2020, 21:42
Это не мой код.
Вот я написал финальную версию:
Python
1
2
3
4
5
6
7
8
9
lst = input()
if lst.find(' ') > 0:
    lst = list(map(int, lst.split()))
else:
    lst = list(lst)
max_el = lst.index(max(lst))
min_el = lst.index(min(lst))
lst[max_el], lst[min_el] = lst[min_el], lst[max_el]
print(*lst, sep=" ")
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
10.04.2020, 21:46
а можно просто информировать при вводе
Python
1
lst = list(map(int,input('ввод чисел через пробел: ').split()))
и sep=" " тут не нужен для пробела.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:48
1) как это-то более универсально? Как по мне так шматок непонятности с условиями какой-то...
2) find? шта? то есть ввести первый элемент пробел и уже не подходит? Хотя бы
Code
1
' ' in lst
3) зачем lst = list(lst), вы же потом все равно "буквы" сравниваете, а не числа
4) если можно обойтись без lst = list(lst), то фактически мы возвращаемся к моему коду
0
 Аватар для Semen-Semenich
5239 / 3483 / 1176
Регистрация: 21.03.2016
Сообщений: 8,314
10.04.2020, 21:52
Цитата Сообщение от Jabbson Посмотреть сообщение
вы же потом все равно "буквы" сравниваете, а не числа
ну для единиц это еще прокатит. грабли на которые потом автор наступит сам когда попытается сравнить строку с числом
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
10.04.2020, 21:53
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
и sep=" " тут не нужен для пробела.
вот тут категорически согласен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2020, 21:53

Проблемы с работой по Python. Memory error
При попытке запустить , выходит ошибка. Я начинаюший в datascince, пытаюсь запустить машинное обучение ) типа предсказание . Может кто...

Проблемы с работой батника
Добрый день, помогите пожалуйста, ступор уже второй день. Нужен bat-ник, который будет искать pdf файлы во всех вложенных папках, находя...

Проблемы с работой системы
Всем привет! Собрал систему: Материнская плата: ASUS ROG STRIX B450-I GAMING Процессор: AMD Ryzen 7 2700 OEM YD2700BBM88AF ...

Проблемы с подключением и работой с БД
НЕ получается подключить БД. Работаю с phpmyadmin через openserver. Вот код который пишу. (касати mysql_connect, mysql_select_db,...

Проблемы с работой ТП 7.0 на Windows 7
Доброе время суток! У меня проблема с работой Турбо Паскаля 7,0. Ноутбук ASUS К50IJ OC Windows 7 32-bit. Проблема работы заключается ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
38
Ответ Создать тему
Опции темы

Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru