S
S
Sergey Zolotarev2020-08-02 20:26:10
Python
Sergey Zolotarev, 2020-08-02 20:26:10

What is the correct way to assign a list of elements of a multidimensional array instead of a variable to integers?

Technology stack: Openpyxl

The task itself is to obtain a list of successful graduates, taking into account the total maximum value from the cells of the Excel table.
I have formed a function that allows you to form and initialize multidimensional arrays - their element values ​​- cell codes. The function code itself is in the comments to the question.

I'm running into a problem when I try to assign a list of string elements and the compiler brings surprises on a piece of code:

#Работа с данными для их анализа
ds = DatasetRead()
rdata = ReportDataRead()
rwb = ReportDataWorkBook()
rd = rwb.get_sheet_by_name('Report')

#Массивы для проверки соответствии при анализе
mlsb = LearnLevelBalanceArray()
msd = maxSalaryDataArray()
sgl = {}

for index, row in ds.iterrows():
    #Производит выборку данных из датасета. Это - первый этап анализа данных по студентам с опытом работы.

    #Если решение на русском языке, то расшифровка пола выпускника переводится на английский язык.
    if row['gender'] == "M": 
        gender = "Муж"
    if row['gender'] == "F": 
        gender = "Жен"
    if 'profile' not in sgl:
        sgl.update({'profile': {}})
    if 'info' not in sgl['profile']:
        sgl['profile'].update({'info': {}})
    if 'degree' not in sgl['profile']['info']:
        sgl['profile']['info'].update({'degree': {}})

    sgl['profile']['gender'] = gender
    sgl['profile']['education_work'] = {
        'degree': row['degree_t'],
        'specialisation': row['specialisation'],
        'salary': row['salary']
    }
    

    

    if row['workex'] == "Yes":

        mls_scc = LearnMaxLevelDataArray("school")

        for rowm, index in mls_scc:
            if row['gender'] == "M": 
                for rowmt, index in enumerate(rowm[1][0]):
                    input_ssc_level = rd[rowmt[index]].value
                    maxlevelbalance = 100 - input_ssc_level #Получает баланс уровня от максимального уровня критерии
                    userlevelbalance = 100 - row['ssc_p']

                    if maxlevelbalance > userlevelbalance:
                            levelbalance = maxlevelbalance - userlevelbalance #Подсчитываем баланс от уровня

                    if maxlevelbalance < userlevelbalance:
                        levelbalance = userlevelbalance - maxlevelbalance

                    for rowms, index in mlsb.iterrows():
                        if levelbalance == rowms[index] or levelbalance > rowms[index]:

                            #Если текущий баланс уровня соответствует нужным критериям, то система для списка успешных выпускников оставит уровень школьных знании, которого добился выпускник
                            sgl['profile']['info']['school'] = row['ssc_p']
                    ind += 1
                
            if row['gender'] == "F": 
                for rowmt, index in enumerate(rowm[0][0]):
                    input_ssc_level = rd[rowmt[index]].value
                    maxlevelbalance = 100 - input_ssc_level #Получает баланс уровня от максимального уровня критерии
                    userlevelbalance = 100 - row['ssc_p']

                    if maxlevelbalance > userlevelbalance:
                            levelbalance = maxlevelbalance - userlevelbalance #Подсчитываем баланс от уровня

                    if maxlevelbalance < userlevelbalance:
                        levelbalance = userlevelbalance - maxlevelbalance

                    for rowms, index in mlsb.iterrows():
                        if levelbalance == rowms[index] or levelbalance > rowms[index]:

                            #Если текущий баланс уровня соответствует нужным критериям, то система для списка успешных выпускников оставит уровень школьных знании, которого добился выпускник
                            sgl['profile']['info']['school'] = row['ssc_p']
                    
print(sgl)


And the rd[rowmt[index]].valuecompiler displayed the following message: The message means that instead of lists of elements, it assigned a variable to elements. I encounter such problems more than once (especially in PHP) and tell me how to correctly assign a list of multidimensional string elements in Python so that the compiler does not bring surprises?
TypeError: 'int' object is not subscriptable

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question