Изучаю python по книге, столкнулся с не совсем понятным мне заданием, которое в явном виде не рассматривалось в главе к которой относится задача.
#• Создайте другой список new_users, содержащий пять и более имен пользователей .
# Убедитесь в том, что одно или два новых имени также присутствуют в списке
# current_ users .
#• Переберите список new_users и для каждого имени в этом
# списке проверьте, было ли оно использовано ранее . Если имя уже использовалось,
# выведите сообщение о том, что пользователь должен выбрать новое имя .
# Если имя не использовалось, выведите сообщение о его доступности .
#• Проследите за тем, чтобы сравнение выполнялось без учета регистра символов .
# Если имя 'John’ уже используется, в регистрации имени ‘JOHN’ следует отказать.
Есть списки к примеру:
current_users = [“Andrew”, “JOHHNAS”, “AdMiN”, “FrenchPress”,
“Dreamer1cc”, “XIII”]
new_users = [“AnDrEw”, “Apple”, “xiii”, “frenchpress”, “NewUser”, “CurrentUser”,
“NotCurrentUser”
]
Как выполнить проверку без учета регистра, я могу элементы первого перебираемого списка взять в нижнем регистре как:
for user in new_users: if user.lower() in current_users
но при этом ко всему списку current_users я не могу применить lower. Единственное, что пока придумал - копирование всего списка текущих в новый, перебором, сразу понижая регистр, и потом сравнение с новыми. Мне кажется, что должно быть более красивое решение, но не удаётся его найти.
Использую код:
current_users = ["Andrew", "JOHHNAS", "AdMiN", "FrenchPress", "Dreamer1cc", "XIII"] new_users = ["AnDrEw", "Apple", "xiii", "frenchpress", "NewUser", "CurrentUser", "NotCurrentUser" ] lower_current_users = [] for cr_user in current_users: lower_current_users.append(cr_user.lower()) for user in new_users: if user.lower() in lower_current_users: print("You must change name. Name " + user + " is already exist!") else: print("Registration availeble. Pls input your e-mail.")