Составить название переменной для списка

В коде нужно перебрать разные списки с близким названием (g_1,g_2,g_3). Пробую решить вопрос через 'g_'+str(f) - тоесть как я полагал, таким образом смогу сформировать название списка и дальше уже перебирать из него поочередно элементы (a = 'g_'+str(f) и a[i] вместо g_1[i],g_2[i],g_3[i]) При исполнение кода получаю ошибку TypeError: '>' not supported between instances of 'str' and 'int' - что она значит понятно, но как тогда нужно правильно написать?

g_1 = list(.......................................)
g_2 = list(.......................................)
g_3 = list(.......................................)

f_l = [1,2,3]

for f in f_l:

    a = 'g_'+str(f)
    
    for i in range(len):

        if a[i]>s:
            ...

Ответы (4 шт):

Автор решения: Kuchizu

Использовать eval

a = eval('g_'+str(f))
→ Ссылка
Автор решения: SergFSM

Либо использовать itertools . Примерно так:

from itertools import chain
l1 = [1,2,3]
l2 = [4,5,6]
l3 = [7,8,9]
for i in chain(l1,l2,l3):
    print(i, end=' ')  # 1 2 3 4 5 6 7 8 9 
→ Ссылка
Автор решения: Victor VosMottor

Возможно стоит переосмыслить подход:

g_1 = list(.......................................)
g_2 = list(.......................................)
g_3 = list(.......................................)

f_l = [g_1, g_2, g_3]

for f in f_l:
    a = f
    for i in range(len):
        if a[i]>s:
            ...

eval — плохая практика

→ Ссылка
Автор решения: MaxU

Гораздо проще, понятнее и правильнее воспользоваться словарем в данном случае. Словари придуманы для того, чтобы быстро и удобно обращаться к данным по ключу:

lists = [...]
data = {i:l for i,l in enumerate(lists)}

В результате вы получите словарь с порядковым номером списка в качестве ключа и соответствующем ему списку в качестве значения.

PS ключ можно сформировать так, как нужно именно вам.

→ Ссылка