#python #for-loop #if-statement
#python #для цикла #if-statement
Вопрос:
Если «Maurya» присутствует в current_users, то «MAURYA» не должно приниматься в качестве доступного имени пользователя.
current_users = ["amit", "ajit", "nishant", "mohit", "Maurya"]
new_users = ["deepak", "manish", "maurya", "akhil", "ajit"]
for new_user in new_users:
if new_user in current_users:
print(f"{new_user}, you need to enter new username!")
else:
print(f"{new_user}, This username is available.")
Ответ №1:
Если вы заботитесь о производительности, и ваш вклад большой, сделайте пару вещей поверх ответа, который solid.py
дал.
- Преобразуйте текущих пользователей в набор
- Используйте этот набор в цикле
current_users = ["amit", "ajit", "nishant", "mohit", "Maurya"]
current_user_set = {user.lower() for user in current_users}
new_users = ["deepak", "manish", "maurya", "akhil", "ajit"]
for new_user in [user.lower() for user in new_users]:
if new_user in current_user_set:
print(f"{new_user}, you need to enter new username!")
else:
print(f"{new_user}, This username is available.")
Ответ №2:
for new_user in new_users:
for current_user in current_users:
if new_user.lower() == current_user.lower():
print('new user {} allready present'.format(new_user))
Комментарии:
1. Вы должны добавить текст к ответу
2. да, я должен. Мне пришлось оставить это на полпути из-за какой-то чрезвычайной ситуации.
Ответ №3:
Более надежный подход, на мой взгляд, заключается в использовании сгибания регистра, поскольку это будет полезно для сравнения имен, которые не обязательно являются плоскими индийскими именами. Кроме того, с точки зрения производительности это обеспечивает больше *, чем метод str.lower() .
Код:
current_users = ["amit", "ajit", "nishant", "mohit", "Maurya"]
new_users = ["deepak", "manish", "maurya", "akhil", "ajit"]
for new_user in new_users:
if new_user in map(str.casefold, current_users):
print(f"{new_user}, you need to enter new username!")
else:
print(f"{new_user}, This username is available.")
Вывод:
>>> deepak, This username is available.
>>> manish, This username is available.
>>> maurya, you need to enter new username!
>>> akhil, This username is available.
>>> ajit, you need to enter new username!
Но все остальные методы работают как шарм! 🙂