Как поменять числа, прочитанные из файла списка .txt?Ошибка «индекс списка вне диапазона» - PullRequest
0 голосов
/ 14 декабря 2018

То, что я пытаюсь сделать, это прочитать из файла .txt, содержащего числа, а затем из этого списка поменять местами 2 числа в разные места (индексы) в списке.Из того, что я могу сказать, проблема в том, что список добавляется, мои индексы больше не верны.Как я могу это исправить, чтобы я не получал ошибку «мой индекс списка вне диапазона».

Задача назначения: Ваша задача в этом назначении - создать простой числовой набор данных.Соберите эти данные из внешнего файла, а затем выполните стратегию сортировки, которую мы рассмотрели, поменявшись местами.

open_list = open("my_list.txt")
num_list1 = []

for line in open("my_list.txt"):
    line = line.strip()
    num_list1.append(line)
    print(num_list1)             # this is printing my list perfect
                                 # ['15,57,14,33,72,79,26,56,42,40'] is what 
                                 #  prints, which is what im looking for


temp = num_list1[0]              # this is where im running into issues
num_list1[0] = num_list1[2]
num_list1[2] = temp
print(num_list1)

1 Ответ

0 голосов
/ 14 декабря 2018

Вам нужно разделить на основе пробела.Используйте split () вместо strip ().Метод strip () возвращает копию строки, в которой удалены как начальные, так и конечные символы (на основе переданного аргумента строки).Принимая во внимание split (): разбить строку на список, где каждое слово является элементом списка.

open_list = open ("my_list.txt")

num_list1 = []

for line in open("my_list.txt"):
    line = line.split()
    num_list1.append(line)
    print(num_list1)             # this is printing my list perfect
                                 # ['15,57,14,33,72,79,26,56,42,40'] is what 
                                 #  prints, which is what im looking for


temp = num_list1[0]              # this is where im running into issues
num_list1[0] = num_list1[2]
num_list1[2] = temp
print(num_list1)

Полная строка сохраняетсяв месте [0] между двумя кавычками.Вот почему вы выходите из индекса для [2].Вы можете проверить это, напечатав num_list1 [2].

print num_list1[2]

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-11-8965836976ae> in <module>()
     10 #num_list1[2] = temp
     11 print(num_list1)
---> 12 print num_list1[2]

IndexError: list index out of range
...