Python 3.6 "IndexError: список индексов вне диапазона" - PullRequest
0 голосов
/ 19 мая 2018

Может ли кто-нибудь сказать мне мою ошибку?

realpair = input("")
realpairfinal = []
rp = list(realpair)
print(rp[0],rp[1])
for i in range(0, len(realpair)):
    a = []
    v1 = rp[0]
    v2 = rp[1]
    rp.pop(0)
    rp.pop(0)
    a.append(v1)
    a.append(v2)
    realpairfinal.append(a)
pair = realpairfinal
pair2 = realpairfinal
print(realpairfinal)

, если мой ввод 123456, realpairfinal должен быть [[1, 2] [3, 4] [5, 6]], но это говоритя:

1 2
Traceback (most recent call last):
    v1 = rp[0]
IndexError: list index out of range

Ответы [ 2 ]

0 голосов
/ 19 мая 2018
pairs = [list(realpair[i:i+2]) for i in range(0, len(realpair), 2)]

Это использует понимание списка , чтобы создать список вместо того, чтобы создавать пустой список и затем добавлять к нему элементы.

Я беру подстроку длины 2, превращая ее в список символов, используя list (), который затем добавляется во внешний список (используя понимание списка)

0 голосов
/ 19 мая 2018
realpair = input("")
realpairfinal = []
rp = list(realpair)
for i in range(0, len(realpair)-3):
    a = []
    v1 = rp[0]
    v2 = rp[1]
    rp.pop(0)
    rp.pop(0)
    a.append(v1)
    a.append(v2)
    realpairfinal.append(a)
pair = realpairfinal
pair2 = realpairfinal
print(realpairfinal)

Вычтите три из длины.Выход: [['1', '2'], ['3', '4'], ['5', '6']]

...