цикл for внутри цикла for получает неверный синтаксис - PullRequest
0 голосов
/ 24 февраля 2019

Привет, я новичок в python и борюсь с созданием цикла for внутри цикла for.Я хочу, чтобы нижние 3 строки зациклились.Большое спасибо!

for restaurant in sorted_list:
    wks_res.append_row([
        restaurant["name"],
        restaurant["rating"],
        restaurant["user_ratings_total"],
        restaurant['reviews'][0]['text'],
        restaurant['reviews'][1]['text'],
        restaurant['reviews'][2]['text'],
])

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

for restaurant in sorted_list:
   wks_res.append_row([
       restaurant["name"],
       restaurant["rating"],
       restaurant["user_ratings_total"],
       for reviews in restaurant['reviews']:
          reviews['text'],

])

Ответы [ 3 ]

0 голосов
/ 24 февраля 2019

Это должно работать.Следите за этими скобками, они специально переставлены.Проверьте понимание списка в Интернете для получения дополнительной информации об этом.

for restaurant in sorted_list:
   wks_res.append_row([
       restaurant["name"],
       restaurant["rating"],
       restaurant["user_ratings_total"]] +
       [rev["text"] for rev in restaurant["reviews"]]

)
0 голосов
/ 03 марта 2019

Спасибо!Это действительно сработало:

for restaurant in sorted_list:
   wks_res.append_row([
      restaurant["name"],
      restaurant["rating"],
      restaurant["user_ratings_total"]] +
      [rev["text"] for rev in restaurant["reviews"]]

)

0 голосов
/ 24 февраля 2019

Вы не можете использовать цикл for внутри выражения.

Это должно работать:

for restaurant in sorted_list:
   # create the list to append
   row = [
       restaurant["name"],
       restaurant["rating"],
       restaurant["user_ratings_total"]
   ]
   # expend this list with 'reviews'
   for review in restaurant['reviews']:
          row.append(review['text'])
   # append the list to wks_res
   wks_res.append_row(row)

в качестве альтернативы вы можете использовать понимание списка

row = [
   restaurant["name"],
   restaurant["rating"],
   restaurant["user_ratings_total"]
] + [review['text'] for review in restaurant['reviews']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...