Почему все элементы изменились на новый элемент, когда я добавляю новый элемент в существующий список? - PullRequest
0 голосов
/ 27 октября 2019

Я пишу цикл для добавления нового элемента в существующий список. Но я обнаружил, что когда я добавляю новый элемент в список, длина списка увеличивается на единицу, но все элементы в списке заменяются новым элементом. Я с нетерпением жду вашей руки!

Я пытался написать простой код для добавления элемента в существующий список в цикле в консоли, но результат правильный. Поэтому мне действительно интересно, в чем моя вина в предыдущей программе.

#construct the boundary of the set and the given point
beginPoint = middlePoint(projectionInSet(givenPoint), givenPoint)
pointSetBoundary = [beginPoint,]
print(pointSetBoundary)
#rightside of the beginning point
rightPoint = beginPoint
print("Begin Point: ", rightPoint)
projection = projectionInSet(rightPoint)
print("Begin Projection: ", projection )
[k, b] = perpendicualrBisector(projectionInSet(givenPoint), givenPoint)
stepRight = 0.01 
while rightPoint[0] <= 10 and rightPoint[1] <= 10 and rightPoint[0] >= 0 and rightPoint[1] >= 0: 
    rightPoint[0] = rightPoint[0] + stepRight
    rightPoint[1] = k * rightPoint[0] + b
    if distance(projectionInSet(rightPoint), projection) > 0.000001:
        projection = projectionInSet(rightPoint)
        [k, b] = perpendicualrBisector(projection, givenPoint)
        if k >= 0:
            stepRight = 0.01
        else:
            stepRight = -0.01
    pointSetBoundary.append(rightPoint)
    print(pointSetBoundary)
print("Right Boundaries completed!")

Я ожидаю, когда новая rightPoint добавится в прежний список без изменения существующих элементов.

1 Ответ

0 голосов
/ 27 октября 2019

После публикации вопроса я внезапно осознал, что элемент, который я добавляю в список, постоянно меняется. Это очень жаль. Чтобы сэкономить ваше время, я закрываю этот вопрос.

В начале цикла while я изменил значение точек RightPoint на. Тем не менее, прежний элемент списка разделяет то же пространство памяти. Таким образом, их содержание меняется одновременно.

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