Добрый день!
Я построил функцию, которая реализовывает многомерный массив:
def LearnMaxLevelDataArray(critery):
#Программный датасет, состоящий из максимальных значений по уровням знаний и труда в зависимости от доступных критерии.
if critery == "school":
da = [
[
['BV6','BX6','BZ6','CB6','CD6','CE6','CG6','CI6'],
['BV7','BX7','BZ7','CB7','CD7','CE7','CG7','CI7']
],
[
['BW7','BY7','CA7','CC7','CF7','CH7','CJ7'],
['BW7','BY7','CA7','CC7','CF7','CH7','CJ7']
]
]
elif critery == "high":
da = [
[
['AF6','AH6','AJ6','AL6','AN6','AO6','AQ6','AS6'],
['AF7','AH7','AJ7','AL7','AN7','AO7','AQ7','AS7']
],
[
['AG6','AI6','AK6','AM6','AP6','AR6','AT6'],
['AG7','AI7','AK7','AM7','AP7','AR7','AT7']
]
]
elif critery == "mba":
da = [
[
['AU6','AW6','AY6','BA6','BC6','BD6','BF6','BH6'],
['AU7','AW7','AY7','BA7','BC7','BD7','BF7','BH7']
],
[
['AV6','AX6','AZ6','BB6','BE6','BG6','BI6'],
['AV7','AX7','AZ7','BB7','BE7','BG7','BI7']
]
]
elif critery == "estet":
da = [
[
['Q6','S6','U6','W6','Y6','Z6','AB6','AD6'],
['Q7','S7','U7','W7','Y7','Z7','AB7','AD7']
],
[
['R6','T6','V6','X6','AA6','AC6','AE6'],
['R7','T7','V7','X7','AA7','AC7','AE7']
]
]
elif critery == "degree":
da = [
[
['B6','D6','F6','H6','J6','K6','M6','O6'],
['B7','D7','F7','H7','J7','K7','M7','O7']
],
[
['C6','E6','G6','I6','L6','N6','P6'],
['C7','E7','G7','I7','L7','N7','P7']
]
]
return da
И отрывок кода, где я подключил функцию самого массива:
if row['workex'] == "Yes":
mls_scc = LearnMaxLevelDataArray("school")
for rowm, index in mls_scc.itterows():
if rowm['gender'] == "M":
input_ssc_level = rd[rowm[1][0][index]].value
if rowm['gender'] == "F":
input_ssc_level = rd[rowm[0][0][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']
mls_hsc = LearnMaxLevelDataArray("high")
for rowm, index in mls_hsc.itterows():
if rowm['gender'] == "M":
input_ssc_level = rd[rowm[1][0][index]].value
if rowm['gender'] == "F":
input_ssc_level = rd[rowm[0][0][index]].value
maxlevelbalance = 100 - input_ssc_level #Получает баланс уровня от максимального уровня критерии
userlevelbalance = 100 - row['hsc_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']['highschool'] = row['hsc_p']
mls_mba = LearnMaxLevelDataArray("mba")
for rowm, index in mls_mba.itterows():
if row['gender'] == "M":
input_ssc_level = rd[rowm[1][0][index]].value
if row['gender'] == "F":
input_ssc_level = rd[rowm[0][0][index]].value
maxlevelbalance = 100 - input_ssc_level #Получает баланс уровня от максимального уровня критерии
userlevelbalance = 100 - row['mba_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']['highschool'] = row['mba_p']
mls_estet = LearnMaxLevelDataArray("estet")
for rowm, index in mls_estet.itterows():
if row['gender'] == "M":
input_ssc_level = rd[rowm[1][0][index]].value
if row['gender'] == "F":
input_ssc_level = rd[rowm[0][0][index]].value
maxlevelbalance = 100 - input_ssc_level #Получает баланс уровня от максимального уровня критерии
userlevelbalance = 100 - row['estet_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']['estet'] = row['estet_p']
mls_degree = LearnMaxLevelDataArray("degree")
for rowm, index in mls_degree.itterows():
if row['gender'] == "M":
input_ssc_level = rd[rowm[1][0][index]].value
if row['gender'] == "F":
input_ssc_level = rd[rowm[0][0][index]].value
maxlevelbalance = 100 - input_ssc_level #Получает баланс уровня от максимального уровня критерии
userlevelbalance = 100 - row['degree_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']['degree'] = row['degree_p']
Когда я учил выборку элементов массива на Python, некоторые специалисты говорили, что для выборок элементов всех видов массивов(включая, многомерные) используется itterows и питоновский компилятор меня удивил:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in
40 mls_scc = LearnMaxLevelDataArray("school")
41
---> 42 for rowm, index in mls_scc.itterows():
43
44 if rowm['gender'] == "M":
AttributeError: 'list' object has no attribute 'itterows'
Я задаю себе вопрос: А как itterows правильно может воспринимать многомерные массивы для выборки данных и какая функция для этого существует?