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: |

Users are more open to new information on workdays rather than weekends. Channel login must contain 5-32 characters The channel also called on people to turn out for illegal assemblies and listed the things that participants should bring along with them, showing prior planning was in the works for riots. The messages also incited people to hurl toxic gas bombs at police and MTR stations, he added. The Channel name and bio must be no more than 255 characters long Ng, who had pleaded not guilty to all charges, had been detained for more than 20 months. His channel was said to have contained around 120 messages and photos that incited others to vandalise pro-government shops and commit criminal damage targeting police stations.
from us


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