Страницы

Поиск по вопросам

суббота, 1 февраля 2020 г.

Поиск элемента в списке

#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, вот тогда бы ваш код заработал.

Комментариев нет:

Отправить комментарий