Предположим, что у меня есть набор переменных, которые уже созданы. Они используют аналогичное (то есть предсказуемое соглашение об именах). Пример:Python; для цикла; итерация по существующему набору переменных
job0 = "X"
job1 = " "
job2 = " "
job3 = "X"
job4 = "X"
Моя цель состоит в том, чтобы иметь возможность перебрать этих переменных и проверить, является ли они или не содержат в «X». Эти переменные «автоматически сгенерированы» другим циклом for
.
Вот уже пример кода, я экспериментировал с:
job_count_array = []
global job_count
for i in range(2, job_count+1):
job_count_array.append("sel.get_text(//form[@id='SubAvailSelectForm']/font/table[2]/tbody/tr[%d]/td[1]/small)" % i)
print job_count_array #output for debug purposes
for l, value in enumerate(job_count_array):
exec "job%d = value" % l #auto-generates variables with the above list indices
Итак, как вы можете видеть, я получаю переменные, сгенерированные с помощью $
перечисления $
итерации. Кажется, я не могу найти способ проверить, не содержат ли эти автоматически сгенерированные переменные (т. Е. Job0, job1, job2, job3 и т. Д.) Либо «X», либо пустое пространство »». Вот моя попытка:
for i in range(0, job_count-1):
print "job%d" % i
if "job%d" % i == "X":
print "Excluding Job%d: Found Locked Status" % i
#I plan to add code to this line that will allow me to exclude the job this variable refers to for further testing/evaluation
if job%d % i == " ":
print "Including Job%d: Found Unlocked Status" % i
#I plan to add code to this line that will allow me to include the job this variable refers to for further testing/evaluation
Не используйте нумерованные переменные. Вместо этого используйте * список * или, в лучшем случае, словарь. У вас уже ** есть ** список * даже, 'job_count_array'. –
[Сохранять данные из ваших имен переменных] (http://nedbatchelder.com/blog/201112/keep_data_out_of_your_variable_names.html). –
Итак, вызов метода в индексе списка будет функционировать так же, как если бы я назначил его переменной? – philthy