st = ['ма', 'раму']
md = "мама мыла раму"
s = time()
for _ in range(1_000_000):
for i in st:
if x := re.search(fr'\b{i}\b', md):
break
end1 = time()-s
print(f'Изначальный вариант: {end1} сек.')
s = time()
for _ in range(1_000_000):
if x := next((i for i in st if i in md and md.split(i)[0]), None):
...
end2 = time()-s
print(f'Мой вариант: {end2} сек.')
Изначальный вариант: 2.8359663486480713 сек.
Мой вариант: 1.1294591426849365 сек.
import re
from time import time
st = ['ма', 'раму']
md = "мама мыла раму"
s = time()
for _ in range(10_000_000):
for i in st:
if x := re.search(fr'\b{i}\b', md):
break
end1 = time()-s
print(f'Изначальный вариант: {end1} сек.')
s = time()
for _ in range(10_000_000):
if x := next((md.split(i)[0] for i in st if i in md), None):
...
end2 = time()-s
print(f'Мой вариант: {end2} сек.')
Изначальный вариант: 27.527040719985962 сек.
Мой вариант: 8.642368078231812 сек.
import re
from time import time
st = [f'25{i}363{i}' for i in range(1000)]
md = ''.join([str(hash(i)) for i in range(1000)])
def speed_test_base() -> None:
for i in st:
if x := re.search(i, md):
print(x[0])
break
s = time()
for _ in range(1000):
speed_test_base()
end1 = time()-s
print(f'Изначальный вариант: {end1} сек.')
x = lambda arr, string: next((i for i in arr if i in string), None)
s = time()
for _ in range(1000):
print(x(st, md))
end2 = time()-s
print(f'Мой вариант: {end2} сек.')
s = time()
for _ in range(1000):
if print(next((i for i in st if i in md), None)):
break
end3 = time()-s
print(f'Алтернативный вариант: {end3} сек.')
print('-----------------------------------')
print(f'''Изначальный вариант: {end1} сек
Мой вариант: {end2} сек.
Алтернативный вариант: {end3} сек.''')
Изначальный вариант: 46.78182625770569 сек
Мой вариант: 1.6707286834716797 сек.
Алтернативный вариант: 1.6726698875427246 сек.
def get_proxy() -> dict:
rp = RegisteredProviders()
rp.parse_providers()
prox = rp.get_random_proxy()
return {'http': prox}
for a_task in tasks:
interim_result = await a_task
interim_results.append(interim_result)
return await asyncio.gather(*tasks)
@bot.message_handler(commands=['getfile'])
def gf_cmd(message):
cur.execute(f'SELECT TRUE FROM users WHERE chatid={message.chat.id} AND key=1 LIMIT 1')
result = cur.fetchone()
if result:
bot.send_message(message.chat.id, "Вот твои файлы: ...")
else:
bot.send_message(message.chat.id, "У вас нет доступа...")
if result['key']:
bot.send_message(message.chat.id, "Вот твои файлы: ...")
else:
bot.send_message(message.chat.id, "У вас нет доступа...")
if result[0]:
bot.send_message(message.chat.id, "Вот твои файлы: ...")
else:
bot.send_message(message.chat.id, "У вас нет доступа...")