Python, добавление элемента в список не работает - PullRequest
0 голосов
/ 01 августа 2020

У меня есть следующие переменные, все они имеют свое собственное использование

attributes = {
     "base" : None,
     "recognize" : None,
     "type" : None,
     "is_correct" : False,
     "index" : 0
};
res = [];
tmp_que = [];
first_res = None;

тогда у меня есть этот родитель l oop

y = [["- a", "+ b"]]

for per in y :
    B.check(list(per));
    pass;

где B.check имеет это l oop

 for index,per in enumerate(base):

            no_s_characters = ''.join(e for e in per if e.isalnum());
            first_char = str(per)[0] if len(no_s_characters) > 0 else None;
            is_empty_que = len(res) <= 0;

            params = attributes;
            params["base"] = no_s_characters;
            params["recognize"] = [];
            params["type"] = first_char;

            if is_empty_que and index == 0:
                params["is_correct"] = True \
                    if first_char != "-" and first_char != "+" \
                    else False;
                first_res = params;
                res.append(first_res);
                print(">>> inner loop >>", res);
                continue;
                pass;

            print(per, res,is_empty_que and index == 0);

            last_index_que = res[len(res) - 1];
            last_index = len(res) - 1;

            pass;

Я хочу добавить, если текущий элемент l oop равен index == 0, а переменная is_empty_que == True. внутренний l oop print правильный, он печатает то, что условие должно выполняться, но на следующем l oop, где index == 1 и if condition == False, следующая печать должна напечатать то, что уже добавлено в переменную res и я ожидал, что следующая печать вернет это

{'base': 'a', 'recognize': [], 'type': '-', 'is_correct': False, 'index': 0}

, но оно вернет

{'base': 'b', 'recognize': [], 'type': '+', 'is_correct': False, 'index': 0}

полностью ...

class B(TextBasis):

    @staticmethod
    def check(base):
        attributes = {
            "base" : None,
            "recognize" : None,
            "type" : None,
            "is_correct" : False,
            "index" : 0
        };
        res = [];
        tmp_que = [];
        first_res = None;
        test = False;

        print("_______________________");

        for index,per in enumerate(base):

            no_s_characters = ''.join(e for e in per if e.isalnum());
            first_char = str(per)[0] if len(no_s_characters) > 0 else None;
            is_empty_que = len(res) <= 0;

            params = attributes;
            params["base"] = no_s_characters;
            params["recognize"] = [];
            params["type"] = first_char;

            if is_empty_que and index == 0:
                params["is_correct"] = True \
                    if first_char != "-" and first_char != "+" \
                    else False;
                first_res = params;
                res.append(first_res);
                print(">>> inner loop >>", res);
                continue;
                pass;

            print(per, res,is_empty_que and index == 0);

            last_index_que = res[len(res) - 1];
            last_index = len(res) - 1;

            pass;

        print("______________________")

        pass;

    pass;

y = [["- a", "+ b"]]

for per in y :
    B.check(list(per));
    pass;

введите описание изображения здесь

...