Может ли кто-нибудь подробно объяснить, как работает цикл for и как он выглядит без понимания списка? - PullRequest
1 голос
/ 25 октября 2019
def delete_books(name):
    books=list_book()
    books=[book for book in books if book['name']==name]
    savefile_books(books)

Мой вопрос касается понимания списка в python. Я просил вас объяснить в задержании об этом за цикл. Как его работа и как он выглядит в обычном коде без понимания списка?

Ответы [ 2 ]

2 голосов
/ 25 октября 2019
books = [book for book in books if book['name']==name]

это то же самое, что и:

new_books = []

for book in books:
  if book['name']==name:
     new_books.append(book)

books = new_books

Как видите, понимание списка гораздо элегантнее.

0 голосов
/ 25 октября 2019

Эта функция будет выполнять ту же функцию, что и ваша функция, но без понимания списка:

def delete_books_no_list_comprehension(name):
  books = list_book()
  filtered_books = []
  for book in books:
    if book['name'] == name:
      filtered_books.append(book)
  savefile_books(filtered_books)

См. Также, для получения дополнительной информации: https://www.pythonforbeginners.com/basics/list-comprehensions-in-python

...