#python #function #for-loop #global
#python #функция #для цикла #глобальный
Вопрос:
это мой код. Я в основном создал функцию, которая автоматически генерирует списки в зависимости от длины таблицы pandas. Функция принимает таблицу pandas в качестве входных данных, и вам нужно указать, в каком столбце вы хотите, чтобы строки были преобразованы в списки (column_name), и функция в основном выполняет списки автоматически. Весь код работает отлично, однако есть проблема. Я хочу, чтобы каждый сгенерированный список (i) в цикле for был глобальным списком. итак, я попытался поместить exec(f’global {i}’) в цикл в попытке сделать все списки глобальными.
Решение состояло в том, чтобы поместить весь блок кода за пределы функции, и он будет работать нормально, однако мне действительно нужно, чтобы код был в функции. Любые советы о том, как сделать каждый сгенерированный список глобальным списком, используя exec(f’global {i}’)??
Спасибо
def auto_generate_lists(x):
namesoflistssss1=[]
names_of_listsss = []
for i in range(0,len(x)):
names_of_listsss.append(f'ls{i}')
for i,j in zip(names_of_listsss,range(0,len(x))):
exec(f'global {i}')
exec(f'{i} = []')
exec(f"{i}.append(x['column_name'][{j}])")
exec(f"namesoflistssss1.append('{i}')")
Комментарии:
1. @bauman.space: Что? Нет, это совершенно не похоже на то, как
exec
работает Python.2. @bauman.space но это работает..