2015-06-17 1 views
0

Очень новый для python - только что начал использовать его вчера. Я запускаю цикл for, который сканирует текстовый файл и копирует определенные его части в переменные, которые затем будут помещены в класс post. Я хочу создать новое сообщение в нижней части цикла с именем «post0», «post1» и т. Д., Соответствующее количеству раз, за ​​которое цикл for был запущен. Это то, что я пытаюсь использовать:Получение KeyError при попытке создания нескольких переменных в for loop («post0», «post1» и т. Д.)

postname = globals()['post%s' % s]

И я в настоящее время пытаюсь иметь его напечатать название поста каждый раз, когда он создает один с простым print(postname). 's' - это переменная, из которой цикл цикла заканчивается, если это имеет смысл. Он начинается с 0 и доходит до количества строк в текстовом файле, в настоящее время 424.

Когда я запускаю код, он возвращает «KeyError: post0». Что я делаю не так?

Кроме того, чтение здесь кажется, что создание переменных таким образом является плохой практикой. Если есть более эффективный способ сделать это, я был бы счастлив попробовать это вместо этого, но я также хотел бы знать, как заставить этот метод работать, чтобы я понял концепцию. Благодарю.

Редактировать: проблема решена! См. Мой ответ ниже.

ответ

0

Я создал список postlist = [] вне цикла, затем внутри цикла добавляю список с «post_», где «_» является переменной 's'. Похоже, это:

postlist.append('post%s' % s)

Python это круто!

 Смежные вопросы

  • Нет связанных вопросов^_^