#python #python_3x #list
Код: users = [12390312, 12313123, 57289234, 21837129398] userstats = 21837129398 print("Начинаю поиск") for element in users: if userstats == users: break else: print("'userstats' нет в списке 'users'") print("'userstats' есть в списке 'users'") К примеру в коде у меня есть список c id пользователей users = [12390312, 12313123, 57289234, 21837129398] И есть сервер который отправляет мне по команде id пользователя в переменную userstats. Предположим он отправил мне переменную с id 21837129398 В теории код должен найти в списке этот id, если находит, нужно чтобы выполнялся этот код: print("'userstats' есть в списке 'users'") А если не находит нужно чтобы выполнялся этот код: print("'userstats' нет в списке 'users'") Но с моим кодом у меня не выходит, не знаю что делать, пробовал гуглить, ничего не нагуглил. Я ещё новичок в этой сфере, может что-то не знаю, подскажите :)
Ответы
Ответ 1
Для таких проверок можно воспользоваться оператором in. Если элемент есть в коллекции, то вернётся True, иначе - False. Код: users = [12390312, 12313123, 57289234, 21837129398] userstats = 21837129398 if userstats in users: print("'userstats' есть в списке 'users'") else: print("'userstats' нет в списке 'users'") stdout: 'userstats' есть в списке 'users' P. S.: Код можно сократить, используя аналог тернарного оператора: print("'userstats'", 'есть' if userstats in users else 'нет', "в списке 'users'")Ответ 2
В случае бинарного ветвления можно воспользоваться индексированием при помощи булевого значения - False == 0 / True == 1: In [85]: verbs = ["нет", "есть"] In [86]: print(f"'userstats' {verbs[userstats in users]} в списке 'users'") 'userstats' есть в списке 'users'Ответ 3
Как сделать это правильно с помощью in, вам уже написали. А вот почему не работает ваш код: for element in users: if userstats == users: break else: print("'userstats' нет в списке 'users'") Здесь у вас userstats - это один элемент. А users - это весь список. Очевидно, что условие userstats == users никогда не выполнится, т.к. один элемент не будет равен всему списку. Вам нужно было вместо userstats == users написать element == users, вот тогда бы ваш код заработал.
Комментариев нет:
Отправить комментарий