Как проверить одинаковые слова в двух разных списках?

Как я могу проверить наличие одинаковых слов в двух разных списках, если слова имеют разные строчные и прописные буквы? Я написал это:

current_users=["michael", "peta", "jennifer", "clark", "tony"]
new_users=["jeffry", "PETA", "shuff", "TOny", "guy"]

for new_user in new_users:

    if new_user.lower() in current_users:
        print("Sorry, the name "+new_user+" is already taken.")
    else:
        print("The name "+ new_user+ " is available.")

Но это работает, только если первый список в нижнем регистре. Можно ли легко изменить этот код, чтобы игнорировать различия в случае?


person Martin Dimitrov    schedule 16.06.2016    source источник
comment
Не совсем, просто убедитесь, что все элементы в этом списке написаны в нижнем регистре, когда вы его создаете. Или используйте set, который имеет более быстрый поиск: current_users = set(map(str.lower, current_users)).   -  person jonrsharpe    schedule 16.06.2016


Ответы (1)


Вы можете использовать list comprehensions.

Пример

 if new_user.lower() in [user.lower() for user in current_users]:
person Juan Diego Godoy Robles    schedule 16.06.2016
comment
Понимание набора будет лучше, если количество имен в списке довольно велико. - person Moses Koledoye; 16.06.2016
comment
Спасибо! Я думал об этом, но не был уверен, смогу ли я сделать это в выражении If. - person Martin Dimitrov; 16.06.2016
comment
Я согласен с @MosesKoledoye, но я подумал, что это был самый чистый пример для новичка. - person Juan Diego Godoy Robles; 16.06.2016