DSPROGLIB Telegram 5907
🐍🎄 Вот вам новогодняя загадка на подумать

Санта-Клаус решил проверить, есть ли у него все нужные игрушки для доставки. Он написал функцию на Python:

def check_toys(toys, required): 
return all(toy in toys for toy in required)


Функция работает, но Санта недоволен её скоростью на больших списках. Как можно улучшить производительность этой функции, чтобы поиск был быстрее?

Ответ👇

Для ускорения поиска можно преобразовать список игрушек (toys) в множество (set). Это сделает операции проверки принадлежности (in) более быстрыми, так как в множестве они выполняются за O(1), в отличие от списка, где поиск занимает O(n):

def check_toys(toys, required):     
toys_set = set(toys)
return all(toy in toys_set for toy in required)


Так, неоптимизированная функция check_toys отработает на списке из 10 тысяч игрушек за 0.8673701286315918, а оптимизированная — за 0.002813100814819336.
😁8👍7



tgoop.com/dsproglib/5907
Create:
Last Update:

🐍🎄 Вот вам новогодняя загадка на подумать

Санта-Клаус решил проверить, есть ли у него все нужные игрушки для доставки. Он написал функцию на Python:

def check_toys(toys, required): 
return all(toy in toys for toy in required)


Функция работает, но Санта недоволен её скоростью на больших списках. Как можно улучшить производительность этой функции, чтобы поиск был быстрее?

Ответ👇

Для ускорения поиска можно преобразовать список игрушек (toys) в множество (set). Это сделает операции проверки принадлежности (in) более быстрыми, так как в множестве они выполняются за O(1), в отличие от списка, где поиск занимает O(n):

def check_toys(toys, required):     
toys_set = set(toys)
return all(toy in toys_set for toy in required)


Так, неоптимизированная функция check_toys отработает на списке из 10 тысяч игрушек за 0.8673701286315918, а оптимизированная — за 0.002813100814819336.

BY Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение




Share with your friend now:
tgoop.com/dsproglib/5907

View MORE
Open in Telegram


Telegram News

Date: |

End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Step-by-step tutorial on desktop: 2How to set up a Telegram channel? (A step-by-step tutorial) Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers.
from us


Telegram Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
FROM American