Проверка имен пользователей в двух списках - PullRequest
0 голосов
/ 18 октября 2018

Извините, если этот вопрос кажется простым, но совершенно новым для программирования и запуска с Python.Цель приведенного ниже кода заключалась в создании двух списков и циклическом просмотре списка новых пользователей и проверке совпадения любого из них со списком current_users, но я сделал одно совпадение, но он все равно не получит заданную печать в ifпетля.Он напечатает, что все они уникальны, хотя они и не являются.

new_user = ['roblew', 'keek', 'huh', 'lucas', 'xd']
current_user = ['roblew', 'adam', 'josh', 'alex', 'kiana']

for new_users in new_user:
    if new_users == current_user:
        print("Sorry " + new_users + " that username is taken")
    else:
        print("The username " + new_users + " is available!")

Спасибо!

1 Ответ

0 голосов
/ 18 октября 2018

Если у вас есть два списка, самый простой (и самый быстрый!) Способ узнать, есть ли какие-либо общие элементы, - это преобразовать их в наборы и использовать оператор пересечения:

new_users = ['roblew', 'keek', 'huh', 'lucas', 'xd']
current_users = ['roblew', 'adam', 'josh', 'alex', 'kiana']

set(new_users) & set(current_users)
# => {'roblew'}

(я также взялвозможность изменять имена переменных на множественное, чтобы лучше отражать их содержимое.)

Чтобы проверить, есть ли в списке один элемент, вы можете использовать оператор in, как упомянуто в комментариях;это немного медленнее, так как in проверяет каждый элемент, чтобы увидеть, является ли он одним.Таким образом, вы также можете сделать это так, как в вашем коде:

for new_user in new_users:
    if new_user in current_users:             # note `in` instead of `==`!
        print("Sorry " + new_user + " that username is taken")
    else:
        print("The username " + new_user + " is available!")

Вы также можете использовать ==, чтобы вручную сделать то, что сделал in, проверив каждый элемент по каждому элементу:

for new_user in new_users:
    for current_user in current_users:
        if new_user == current_user:
            print("Sorry " + new_user + " that username is taken")
            break
    else:
        print("Sorry " + new_user + " that username is taken")

Здесь я использую синтаксис for ... else, который довольно уникален для Python, где else будет выполняться только в том случае, если я не break цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...