Если у вас есть два списка, самый простой (и самый быстрый!) Способ узнать, есть ли какие-либо общие элементы, - это преобразовать их в наборы и использовать оператор пересечения:
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
цикл.