Stack Overflow на русском Asked by Dasler on December 10, 2020
дано два списка пользователей, нужно их сравнить в нижнем регистре и если имя занято вывести что невозможна регистрация.
На выдаче дает имя в нижнем регистре, как сделать чтобы был сохранен изначальный регистр new_users
users = ['John', 'mIke', 'Mary', 'lian', 'kira']
n_users = []
for n_user in users:
n_users.append(n_user.lower())
new_users = ['jJy', 'henry', 'jey', 'Kira', 'Mary']
n_new_users = []
for n_new_user in new_users:
n_new_users.append(n_new_user.lower())
for nnr in n_new_users:
if nnr in n_users:
print(nnr + ' you can not join us, incorrect name')
else:
print(nnr + ' the name is available')
Ну как-то так:
users = ['John', 'mIke', 'Mary', 'lian', 'kira']
users_lower_set = set(map(str.lower, users))
new_users = ['jJy', 'henry', 'jey', 'Kira', 'Mary']
for new_user in new_users:
if new_user.lower() in users_lower_set:
print(new_user + ' you can not join, us incorrect name')
else:
print(new_user + ' the name is available')
На выходе:
jJy the name is available
henry the name is available
jey the name is available
Kira you can not join, us incorrect name
Mary you can not join, us incorrect name
Пояснения.
n_new_user
- что здесь значит n_
? Непонятно. Вот users_lower
и new_users_lower
было бы понятнее.set
, так гораздо быстрее (если список большой) - сложность порядка O(1)
.lower
спокойно можно использовать прямо в if
, чтобы не "портить" значение самой переменной.Correct answer by CrazyElf on December 10, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP