nixbox
@nixbox

Как узнать название текущего списка в цикле for in?

Привет.
Передаю в цикл несколько списков, следующим способом
for i in list_1, list_2, list_3:
   print("Название списка текущего i ?")

Как узнать название списка (list_1 или list_2 или list_3) который сейчас обрабатывается в цикле?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
ScriptKiddo
@ScriptKiddo
list_1 = [1, 2, 3]
list_2 = [4, 5, 6]
list_3 = [7, 8, 9]

lists = {
    'list_1': list_1,
    'list_2': list_2,
    'list_3': list_3
}

for list_name, list_values in lists.items():
    for value in list_values:
        print(f"Value: {value} from {list_name}")


Output

Value: 1 from list_1
Value: 2 from list_1
Value: 3 from list_1
Value: 4 from list_2
Value: 5 from list_2
Value: 6 from list_2
Value: 7 from list_3
Value: 8 from list_3
Value: 9 from list_3
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
longclaps
@longclaps
Как узнать название списка (list_1 или list_2 или list_3) который сейчас обрабатывается в цикле?

Какое нахрен "название списка"? Термин "переменная" вами не усвоен? Так задайте здесь о нём вопрос, поясним )
def foo():
    list_1 = [1, 2, 3]
    list_2 = [4, 5, 6]
    list_3 = [7, 8, 9]
    for var in list(locals()):
        print(var, locals()[var])

foo()

Только делать так не надо. Потому что незачем.
Ответ написан
Комментировать
adugin
@adugin Куратор тега Python
Как вариант, можно подойти к задаче с другого конца
for lst_name in ['list_1', 'list_2', 'list_3']:
    lst = eval(lst_name)
    print(lst)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы