TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Python RU

2 Jul, 19:09

Open in Telegram Share Report

Forward from: Python вопросы с собеседований
🖥 Python-трюк: `iter()` умеет работать как цикл до стоп-сигнала

Многие знают iter() только для списков, но у него есть второй режим:


iter(callable, sentinel)


Он вызывает функцию снова и снова, пока она не вернёт sentinel.

Например, читать большой файл кусками без while True:


with open("video.mp4", "rb") as f:
for chunk in iter(lambda: f.read(8192), b""):
process(chunk)


Что происходит:

• lambda читает по 8192 байта
• когда файл закончится, read() вернёт b""
• цикл сам остановится

Выглядит мелко, но это чистый и питоновский способ убрать вечные:


while True:
chunk = f.read(8192)
if not chunk:
break


Редкая штука, которую приятно знать.

1.1k 0 12 11
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot