range. Это важно, потому что вызов range(1000000) не загонит в память список из миллиона элементов, а лишь создаст компактный объект range(0, 1000000). При этом по нему можно безболезненно проитерировать как если бы это был список
for player in players:
if player["id"] == user_id:
return player
else:
return False
while i < len(txt_split) and txt_split[i][0] == "#":
tags.append(txt_split[i].lower())
i+=1while i < len(txt_split):
if txt_split[i].startswith('#'):
tags.append(txt_split[i].lower())
i+=1
txt_split =txt.strip().split(" ")
i = 0
tags = []
while i < len(txt_split) and txt_split[i][0] == "#":
tags.append(txt_split[i].lower())
i+=1tags = [word.lower() for word in txt.strip().split() if word.startswith('#')]
if c == True, а if c;if b == None а if b is None;a == b), кроме случаев, когда это именованные аргументы (func(a=1, b=2));
?