@SideWest
Python.Новичок

Как сделать присваивание переменных в цикле?

У меня есть цикл вида:
for i in ids:
    sql = """SELECT clevel,chel,ctail,cgun,carm,cfoot FROM cats WHERE id=?"""
    cur.execute(sql, [(i)])
    setp = cur.fetchone()
    per_th = {'clevel': setp[0], 'chel': setp[1],'ctail': setp[2],'cgun': setp[3],'carm':setp[4],'cfoot':setp[5]}
    print(per_th)

В результате я получаю словарь per_th со значениями, но у меня два человека, подскажите как мне в цикле присваивать разные названия функция, то есть, чтобы на выходе у меня по факту было два словаря per_th и per_th2
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Список использовать:
data = []
for i in ids:
    ...
    data.append({
        'clevel': setp[0],
        'chel': setp[1],
        'ctail': setp[2],
        'cgun': setp[3],
        'carm': setp[4],
        'cfoot': setp[5],
    })

Да и словарь можно проще формировать:
con = sqlite3.connect(...)
con.row_factory = lambda c, r: {k: r[i] for i, k, *_ in enumerate(cursor.description)}
cur = con.cursor()

...

data.append(cur.fetchone())
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы