Answer the question
In order to leave comments, you need to log in
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)
rd[rowmt[index]].value
compiler 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 questionAsk a Question
731 491 924 answers to any question