Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.12.2019
Сообщений: 51

Работа со списком в цикле

14.12.2022, 01:42. Показов 362. Ответов 2

Студворк — интернет-сервис помощи студентам
Здраствуйте
У меня проблема с кодом, я создала программу которая находит из 2 списка элементы, которых нет в первом, заносит их в 1 после тем элементом, после которым он стоит во 2 списке ( если во 2 списке условный элемент "яблоко" стоял после элемента "груша", то и в 1 списке, куда его перенесли, он должен стоять после элемента "груша"), и в конце удалить этот элемент со 2 списка.

Я создала код и он должен работать нормально, но ошибка возникает в строке 9: индекс выходит за рамки массива.
Я так поняла, что это происходит из за len(weapons), когда в 1 список добавляется новый элемент, но я не совсем понимаю как работает эта ошибка, разве в новом цикле значение len не должно было обновится?

Я конечно могу избежать этой ошибки добавив 3 список и скинув туда слово со 2 списка, а потом в другом цикле перекинув его в 1, но это выглядит немного несуразно.

Может кто-нибудь знает как я могу избежать/исправить эту ошибку в коде.
Буду благодарна за помощь.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
n = False
weapons = ["Browning M1919", "CB-98", "F-1", "Pak-36", "M2"]
weapons2 = ["Pak-40""F-1", "M2", "CB-98", "Desert Eagle", "Browning M1919"]
print(weapons)
print(weapons2)
for i in range(len(weapons2)):
    n = False
    for j in range(len(weapons)):
        if weapons[j] == weapons2[i]:
            n = True
            break
    if n == False:
        if i > 0:
            for g in range(len(weapons)):
                if weapons[g] == weapons2[i-1]:
                   weapons.insert(g+1, weapons2[i])
                   break
            weapons2.pop(i)
        if i == 0:
            weapons.insert(0, weapons2[i])
            weapons2.pop(i)
print(weapons)
print(weapons2)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.12.2022, 01:42
Ответы с готовыми решениями:

Работа со списком в цикле
Здравствуйте. в цикле for перебираю элементы списка и некоторые удаляю, столкнулся с ошибкой выхода за размер коллекции. Подскажите цикл...

Проблема со списком в цикле
Я изучал криптографию реализовывал шифр Вижинера(двумерный массив), для начало создавала таблицу Вижинера,и столкнулся с проблемой . ...

Работа со списком
Приветствую, вот такая задача: Использовать однонаправленные списки без заглавного звена или с заглавным звеном при следующем их описании...

2
398 / 255 / 98
Регистрация: 04.11.2022
Сообщений: 378
14.12.2022, 02:17
Лучший ответ Сообщение было отмечено Евгения ТН как решение

Решение

А если в списке1 нет элемента, после которого стоял переносимый элемент в списке2? Или это 0-й элемент списка2? Я решил в этих случаях добавлять элемент в конец списка1.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
weapons = ["Browning M1919", "CB-98", "F-1", "Pak-36", "M2"]
weapons2 = ["Pak-40""F-1", "M2", "CB-98", "Desert Eagle", "Browning M1919"]
print(weapons)
print(weapons2)
for elem in set(weapons2)-set(weapons):
    i = weapons2.index(elem)
    if i>0:
        try:
            i = weapons.index(weapons2[i-1])
        except ValueError:
            weapons.append(elem)
        else:
            weapons.insert(i+1, elem)
    else:
        weapons.append(elem)
    weapons2.remove(elem)
print(weapons)
print(weapons2)
1
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
14.12.2022, 09:47
Vigilant Mole, в случае ненулевого элемента предыдущий будет добавлен ранее.
ПыСы в weapons2 запятая пропущена...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.12.2022, 09:47
Помогаю со студенческими работами здесь

Работа со списком
Имеется класс Tovar, в котором есть поля: название, страна, объем и цена Class Tovar { public string _name; ...

Работа со списком
Известны марки машин, изготавляемых в данной стране и импортируемых за рубежом. Даны некоторые N стран. Определить для каждой марок, кикие...

Работа со списком
Имеется класс Tovar, в котором есть поля: название, страна, объем и цена Class Tovar { public string _name; ...

Работа со списком
Здравствуйте, обитатели форума! Нуждаюсь в вашей помощи, вообщем есть такое задание: ****** Написать функцию, которая сортирует...

Работа со списком
Здравствуйте у меня вышла проблема с кодом не могу понять что за ошибка, E;Test_Goal, pos: 1095, 505 Type error: Illegal variable type for...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 01.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 31.01.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru