Первый список отсутствует в коде вложенного списка - PullRequest
1 голос
/ 21 января 2020
group = 0
position = 0
end = "n"

while (end == "n"):
    group = group + 1
    xy = [[] for xy in range(group)]
    xy[position].append(int(input("Input x value: ")))
    xy[position].append(int(input("Input y value: ")))
    position = position + 1
    end = input("Last entries? [y/n] ")

print (xy)

Вывод

Input x value: 1
Input y value: 2
Last entries? [y/n] n
Input x value: 3
Input y value: 4
Last entries? [y/n] y
[[], [3, 4]]

Мой первый список отсутствует, и я не понимаю, почему. Как это решить?

Ответы [ 2 ]

1 голос
/ 21 января 2020

вы переопределяете список xy каждый раз, поэтому все списки удаляются, только последний будет сохранен.

Вот код, немного отредактированный для его работы:

end = "n"
xy = []

while (end == "n"):
    a = int(input("Input x value: "))
    b = int(input("Input y value: "))
    xy.append([a,b])
    end = input("Last entries? [y/n] ")

print (xy)

С этим кодом вам даже не нужно использовать group и position переменные.

Вы можете упростить его более, но менее читабельно:

end = "n"
xy = []

while (end == "n"):
    xy.append([int(input("Input x value: ")), int(input("Input y value: "))])
    end = input("Last entries? [y/n] ")

print (xy)
1 голос
/ 21 января 2020

Это происходит потому, что вы запускаете эту строку каждые l oop:

xy = [[] for xy in range(group)]

Это переназначает xy списку пустых списков.

Рассмотрим следующий код , что упрощает ваши существующие усилия:

end = "n"
xy = []

while (end == "n"):
    xy.append([int(input("Input x value: ")), int(input("Input y value: "))])
    end = input("Last entries? [y/n] ")

print (xy)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...