Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/25: Рейтинг темы: голосов - 25, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.10.2019
Сообщений: 5
1

IndexError: list assignment index out of range

13.11.2019, 22:36. Показов 4459. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Spyder показывает ошибку IndexError: list assignment index out of range на 27-й строке, а я ее не вижу. Нумерация ячеек списка в цикле начинается с ноля и заканчивается на (len(l) - 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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import numpy as np
import random as rd
import math
 
ar = np.zeros((10, 2)) # создание массива
 
for i in range(0, 10):
    for j in range(0, 2):
        ar[i][j] = rd.randint(0, 10) # заполнение его произвольными числами (координатами точек)
 
l = [] # создание списка который будет хранить попарные расстояния между точками
 
for p in range(0, 10): # цикл сщитает координаты  между точками и добавляет их в список l
    
    x = ar[p][0]
    y = ar[p][1]
 
    for i in range(0, 10):
        result = math.sqrt((ar[i][0] - x)**2 + (ar[i][1] - y)**2)
        if result == 0:
            continue
        elif result != 0:
            l.append(result)
 
counter = 0
for i in range(0, len(l)- 1): # цикл ищет и убирает повторяющиеся елементы
    cur_element = l[i]
    for j in range(0, len(l)-1):
        if l[j] == cur_element:
            counter +=1
    if counter >= 2:
            l.pop(j)
 
 
#print(ar)
print(l)
#print(l)
print()
#rint(counter)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2019, 22:36
Ответы с готовыми решениями:

Массив в цикле for. IndexError: list assignment index out of range
Приветствую, помогите начинающему в наверное элементарном вопросе, не могу сформировать массив...

IndexError: list index out of range
a1= a2= a3= a4= r= for i in range(0, len(r)): u1=r u2=r u3=r print(u1, u2,...

IndexError: list index out of range
from tkinter import* from random import randint def make_matrix(z,width,height): h= ...

IndexError: list index out of range
Здравствуйте. Вот код. Пишет ошибка. Не могу понять как исправить ошибку. Прошу помощи. def...

IndexError: list index out of range
Добрый день, столкнулся с такой проблемой: создавал телеграм-бота, и при вводе боту команды "/add",...

3
Автоматизируй это!
Эксперт Python
7174 / 4666 / 1219
Регистрация: 30.03.2015
Сообщений: 13,337
Записей в блоге: 29
13.11.2019, 22:41 2
Лучший ответ Сообщение было отмечено semodo как решение

Решение

Цитата Сообщение от semodo Посмотреть сообщение
а я ее не вижу.
а она там есть и именно выход за пределы списка. Или принтами выводи или лучше отладчиком пройдись -сам все увидишь. Ты не забыл, что когда удаляешь элемент из списка, то его длина становится меньше (КО подтверждает)? Вообще так делать нельзя - менять список в момент пробега по нему, тут итератор нужен.



Цитата Сообщение от semodo Посмотреть сообщение
цикл ищет и убирает повторяющиеся елементы
для этого есть set()
1
531 / 180 / 39
Регистрация: 18.08.2012
Сообщений: 907
13.11.2019, 22:44 3
в https://repl.it/languages/python3 - ошибок не показал.
console output:
[3.605551275463989, 2.0, 3.605551275463989, 5.0990195135927845, 5.830951894845301, 4.47213595499958, 5.656854249492381, 6.708203932499369, 7.0710678118654755, 3.605551275463989, 5.0, 1.4142135623730951, 8.54400374531753, 8.06225774829855, 4.123105625617661, 7.280109889280518, 4.0, 3.605551275463989, 2.0, 5.0, 5.385164807134504, 5.0990195135927845, 7.0710678118654755, 4.0, 7.211102550927978, 8.54400374531753, 8.602325267042627, 3.605551275463989, 1.4142135623730951, 5.385164807134504, 8.06225774829855, 7.0, 5.385164807134504, 6.082762530298219, 3.1622776601683795, 3.605551275463989, 5.0990195135927845, 8.54400374531753, 5.0990195135927845, 8.06225774829855, 4.0, 9.055385138137417, 5.0990195135927845, 10.63014581273465, 11.661903789690601, 5.830951894845301, 8.06225774829855, 7.0710678118654755, 7.0, 4.0, 10.295630140987, 1.4142135623730951, 8.54400374531753, 10.198039027185569, 4.47213595499958, 4.123105625617661, 4.0, 5.385164807134504, 9.055385138137417, 10.295630140987, 10.0, 8.06225774829855, 7.0710678118654755, 5.656854249492381, 7.280109889280518, 7.211102550927978, 6.082762530298219, 5.0990195135927845, 1.4142135623730951, 10.0, 7.280109889280518, 9.055385138137417, 6.708203932499369, 4.0, 8.54400374531753, 3.1622776601683795, 10.63014581273465, 8.54400374531753, 8.06225774829855, 7.280109889280518, 2.23606797749979, 7.0710678118654755, 3.605551275463989, 8.602325267042627, 3.605551275463989, 11.661903789690601, 10.198039027185569, 7.0710678118654755, 9.055385138137417, 2.23606797749979]
1
Автоматизируй это!
Эксперт Python
7174 / 4666 / 1219
Регистрация: 30.03.2015
Сообщений: 13,337
Записей в блоге: 29
13.11.2019, 22:46 4
untyped, а это значит не было дублей или их мало, не меняет список. У него в цикле удаляются эдементы дублирующиеся в том и проблема.
0
13.11.2019, 22:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2019, 22:46
Помогаю со студенческими работами здесь

IndexError: list index out of range
Почему-то выводится ошибка. Хотя длину списка я не изменяю. a=list(map(int,input().split())) b=...

IndexError: list index out of range
Кто знает как исправить? Ошибка на 3 строке IndexError: list index out of range import sys...

IndexError: list index out of range
port random Array = ,,,] list = Array=2 def users_choice(Array,user_input): if user_input...

IndexError: list index out of range
помогите, пожалуйста. в 25 и 32 строчках выдаёт ошибку: IndexError: list index out of range def...

IndexError: list index out of range
def INVERT(): line = input() n = int(input()) r = i = 0 while i < n: ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru