Действительно, извините за мой плохой английский.
Я сделал две функции для постоянного изменения (фактически удаления одного за другим) элементов в списке и отображения последнего элемента в конце, но функции удаленияне оказывает влияния на список, который я хочу изменить.
Я думаю, что это проблема локальных переменных и изменчивости списка, но я не знаю, как это исправить.
Сначала я даю список в качестве аргумента одной из сделанных мной функций, удаляя функцию. Функция удаления удаляет элемент, пока у него не будет только одного элемента, ИСПОЛЬЗУЯ ДРУГУЮ ФУНКЦИЮ. В этой функции я вставил другую функцию (я вызову эту функцию проверки). Функция проверки проверяет удаляемые элементы и «фактически» удаляет один элемент в моем коде, но ничего не возвращает.
ПожалуйстаОбратите внимание, что переменные x и y - это случайные значения в диапазоне длины seq (я не писал этого в моем примере кода), и они будут меняться каждый раз в цикле while при удалении функции.
import random
def checking(x, y, seq):
positions = [x, y]
positions.sort()
if seq[x] == 'b' and seq[y] == 'b':
seq.pop(positions[1])
seq.pop(positions[0])
seq.append('a')
else:
seq.pop(positions[1])
seq.pop(positions[0])
seq.append('b')
def removing(seq):
while len(seq) != 1:
x, y = random1, random2
remove(x, y, list(seq))
return seq[0]
final(['a','a','b','a','b'])
Iпроверенная функция проверки работает хорошо, таким образом, я думаю, что это проблема удаления функции.
Я ожидал, что список seq изменяется каждый раз, когда передается функция 'remove', и, наконец, возвращает последний элемент, но ничего не изменилось и застряло вбесконечный цикл.
Спасибо, что прочитали мой вопрос.