Как в Python создать массив с ID пользователя
Нужен глобальный массив, чтобы индивидуальные значения юзера использовались в 1 ячейке массива.
Не могу корректно объяснить. Приложу код на Си, который объясняет суть вопроса.
#define MAX_ACCOUNT 2000
int isLogged[MAX_ACCOUNT];
//
int my_id = 1315;//*
//
//
isLogged[my_id] = 1; // 1 - logged
//
printf("Status Logged: %d", isLogged[my_id]);
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Буквальный перевод:
MAX_ACCOUNT = 2000
# Для заполнения списка изменяемыми объектами так лучше не делать, но для чисел подойдет:
is_logged = [0] * MAX_ACCOUNT # Получится список размером MAX_ACCOUNT, заполненный нулями
my_id = 1315
is_logged[my_id] = 1
print("Status Logged: %d" % is_logged[my_id]) # в "старом" си-подобном синтаксисе
# Или в более современном синтаксисе print(f"Status Logged {is_logged[my_id]}")
В данном случае может быть удобнее использовать не список предопределенного размера, а словарь:
is_logged = dict()
my_id = 1315
is_logged[my_id] = 1
# Метод get вернет значение по ключу, или значение по умолчанию (0 в данном случае), переданное вторым параметром, если ключа нет
print(f"Status Logged {is_logged.get(my_id, 0)}")
Можно вместо dict использовать defalutdict (словарь с заранее заданным значением по умолчанию), тогда значения можно будет получать не через get, а просто через квадратные скобки:
from collections import defalutdict
is_logged = defaultdict(int) # Если значения в словаре нет, то будет вызываться `int()`, что будет давать 0
my_id = 1315
id_logged[my_id] = 1
print(f"Status Logged {is_logged[my_id]}")