saved_time = datetime.now()
current_time = datetime.now()
if (current_time - saved_time).seconds >= 10:
...
random.choices
есть возможность задавать "вес" для элементов. Например:import random
item_chances = {
'item_1': 10,
'item_2': 30,
'item_3': 50,
'item_4': 70,
'item_5': 90
}
selected = random.choices(
list(item_chances.keys()), weights=list(item_chances.values()), k=5000)
for item in set(selected):
print(f'{item}: {selected.count(item)}')
item_1
самый маленький вес, то есть самый маленький шанс выпадения этого значения, в то время как у item_5
самый высокий. Аргумент k
указывает сколько элементов нужно выбрать. В данном случае 5000 я выбрал для теста. Вывод:item_1: 175
item_2: 578
item_3: 1001
item_4: 1458
item_5: 1788
students = [
{'first_name': 'Вася'},
{'first_name': 'Петя'},
{'first_name': 'Маша'},
{'first_name': 'Маша'},
{'first_name': 'Петя'},
]
names = dict()
for student in students:
if student['first_name'] not in names.keys():
names[student['first_name']] = 1
else:
names[student['first_name']] += 1
for name, count in names.items():
print(f'{name}: {count}')
names = [s['first_name'] for s in students]
for name in set(names):
print(f'{name}: {names.count(name)}')
import re
foo = '1. 4x Apples. \n2. 5x Bananas \n3. 6x Oranges\n4. 3x Pears\n'
bar = '1. Ice cream \n2. Rice \n3. Flour\n4. Cola\n'
def to_list(s):
return re.findall(r'\d+\.\s(.+?)(?=\s?\n)', s)
to_list(foo)
# ['4x Apples.', '5x Bananas', '6x Oranges', '3x Pears']
to_list(bar)
# ['Ice cream', 'Rice', 'Flour', 'Cola']
import re
soup.find_all('a', href=re.compile(r'nearLocation'))
soup.select('a[href*=nearLocation]')
import time
msg1 = f"Привет, {name}!" #Первая строка сообщения
msg2 = f"Твой номер #{numb}." #Вторая строка
msg_box = driver.find_element_by_xpath("//*[@id='main']/footer/div[1]/div[2]/div/div[2]")
msg_box.click()
for s in (msg1, msg2):
for c in s:
msg_box.send_keys(s)
time.sleep(0.2)
ActionChains(driver).key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(Keys.SHIFT).key_up(Keys.ENTER).perform()
ActionChains(driver).send_keys(Keys.RETURN).perform()