seregazolotaryow64
@seregazolotaryow64
IT Специалист и самоучка

Как правильно присвоить список элементов многомерного массива вместо переменной целым числам?

Стек технологии: Openpyxl

Сама задача заключается в получении списка успешных выпускников с учётом общих максимальных значении из ячеек таблицы Excel.
Я сформировал функцию, позволяющую формировать и иницилизировать многомерные массивы - их значения элементов - коды ячеек. Сам код функции в комментариях к вопросу.

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

#Работа с данными для их анализа
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)


И по rd[rowmt[index]].value компилятор вывел вот такое сообщение:
TypeError: 'int' object is not subscriptable
Сообщение означает, что вместо списков элементов присвоил переменную элементам.
Не раз сталкиваюсь с такими проблемами(особенно в PHP) и подскажите мне, как в Python правильно присвоить список многомерных строковых элементов, чтобы компилятор не приносил сюрпризов?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы