max_il Ответов: 1

Python преобразует строку и переменную в имя списка


у меня есть следующий код (это код sudo, который отражает реальные значения в моем коде)

у меня есть алист :

virt_who_attached_to_std_vdc = ['A', 'B' , 'c' ]


я хочу проверить ,есть ли элемент в этом списке, но я хочу проверить имя списка как приведенную ниже переменную:

vdc_sub = 'std'
	sub = 'virt_who_attached_to_'+vdc_sub+'_vdc'

если я печатаю значение "sub", то получаю то же имя, что и исходный список, но это, конечно, строка:

печать(sub)
virt_who_attached_to_std_vdc

так что если я проверю, есть ли " а " в sub, как это :

if 'A' in sub:


он ничего не печатает ,как мне представить суб-переменную в качестве исходного списка virt_who_attached_to_std_vdc?

Что я уже пробовал:

пытался конвертировать вложенные в список
sublist = list(sub)
sublist
['v', 'i', 'r', 't', '_', 'w', 'h', 'o', '_', 'a', 't', 't', 'a', 'c', 'h', 'e', 'd', '_', 't', 'o', '_', 's', 't', 'd', '_', 'v', 'd', 'c']

1 Ответов

Рейтинг:
1

Thomas Daniels

Если я правильно понял, вы хотите получить список, в котором хранится это имя sub и проверьте, есть ли "а" в этом списке.

Сначала вам нужно знать: является ли список глобальной переменной или локальной переменной?

Если это глобальная переменная, вы можете сделать это:

if 'A' in globals()[sub]:
    # code
globals() возвращает все глобальные переменные в виде dict, так что вы можете получить свой список с помощью [sub] синтаксис.

Если список является локальной переменной, вы должны использовать locals() вместо globals():
if 'A' in locals()[sub]:
    # code