Как я могу остановиться для цикла iteartion в Python - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу остановиться на цикле после выполнения нескольких строк в моем коде

cursor.execute("select score*100 from daily_stats1 where  user_id=102")
rows = cursor.fetchall()
# Convert query to objects of key-value pairs
lastweek1 = list()
i = 0
for row in rows:
    lastweek1.append(row[i])
    if i == 4:
        break

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

Попробуйте:

for row in rows[:4]:
    lastweek1.append(row)

или вы можете сделать это с помощью сжатия списка следующим образом:

lastweek1 = [row for row in rows[:4]]
0 голосов
/ 21 ноября 2018

Ваш код не имеет смысла для меня - вы хотите сломаться, когда i == 4.Но вы исправили i = 0 и никогда не увеличиваете его.Из чего ты пытаешься вырваться?Может быть, вы хотите сказать -

if rows.index(row) == 4:
    break 

??

0 голосов
/ 21 ноября 2018

Вы никогда не увеличивали свой i.Либо сделай это, либо оставь это на enumerate.Кроме того, пояснив, что вы хотите печатать только 4 строки, лучше выполнить проверку в верхней части цикла, так как в противном случае вы будете печатать 5:

lastweek1 = list()
for i, row in enumerate(rows):
    if i == 4:
        break
    lastweek1.append(row)

Или вы не могли быусложнить это :).Первые четыре целых строки так же просто, как

lastweek1 = rows[:4]

или, если это генератор (что вполне вероятно), и вам нужно проверить его,

lastweek1 = list(rows[:4])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...