Страницы

Поиск по вопросам

вторник, 19 марта 2019 г.

Не создается двумерный массив! Python3

Мне нужно создать двумерный массив, но почему-то мой код не работает. В сам массив элементы добавляются (в цикле), но если попытаться вывести его через print после цикла, ничего не происходит.
def sub_open(path_rar, path_corp): if not os.path.exists(path_corp): os.makedirs(path_corp) for root,dirs,files in os.walk(path_rar): for folder in dirs: print(folder) file = file_corp(path_corp, folder) alligns = allign_times('.//Extracted_Data//', folder, file) print(alligns) - здесь тоже ничего не выводит((((
def allign_times(path_rar, folder, sub_corpus): alligns = [] for root,dirs,files in os.walk(path_rar + folder + '//'): for file in files: print(file) ############ sub_file = open(path_rar + folder + '//' + file, 'r').read() times = re.findall('\d\d:\d\d:\d\d,\d\d\d --> \d\d:\d\d:\d\d,\d\d\d', sub_file) data_times, data_reverse = transform(times) ## vals = [i for i in sorted(list(data_times.values()))] vals1 = [i for i in sorted(list(data_times.keys()))] allphrases = piece_to_file(data_times, sub_file, times, vals, data_reverse, vals1)## #print(allphrases) - тут находятся элементы и выводятся alligns.append(allphrases) - вроде как добавляем #print(alligns) - тут печатает
#print(alligns) - выходим из цикла и после принта вообще ничего не выводит return alligns
Как решить эту проблему? Где ошибка? Как сделать так, чтобы выводился нормальный двумерный массив, когда вызываешь функцию внутри функции sub_open? Буду благодарен за ответ!


Ответ

Вы должны создать массив alligns вне тела функции, так как сейчас это - локальная переменная функции allign_times. Объявите её в самом начале файла (до функций), и в каждой из них в первой строчке напишите global alligns

Комментариев нет:

Отправить комментарий