Составить название переменной для списка
В коде нужно перебрать разные списки с близким названием (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 шт):
Либо использовать 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
Возможно стоит переосмыслить подход:
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 — плохая практика
Гораздо проще, понятнее и правильнее воспользоваться словарем в данном случае. Словари придуманы для того, чтобы быстро и удобно обращаться к данным по ключу:
lists = [...]
data = {i:l for i,l in enumerate(lists)}
В результате вы получите словарь с порядковым номером списка в качестве ключа и соответствующем ему списку в качестве значения.
PS ключ можно сформировать так, как нужно именно вам.