《Python编程 -- 从入门到实践》 练习5-10 中有需要删除重复元素的地方
检查用户名
按下面说的编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。
我自己写的答案代码如下:
#Practice 5-10
current_users = ['dawnhan', 'xiaogu', 'jack', 'tom', 'aily', 'lisa', 'John']
current_users_name = [username.lower() for username in current_users] # 将所有元素都改为小写字母
new_users = ['Dawnhan', 'Lisa', 'Jaden', 'Tesen', 'john', 'aiken', 'John']
new_users_name = [username.lower() for username in new_users]
for new_user in new_users_name:
if new_user in current_users_name:
print(new_user.title() + ", that name is taken.Please input another username:")
new_users_name.remove(new_user)
username = input()
username.lower()
new_users_name.append(username)
else:
new_user.title()
print("This username -- " + new_user + " haven't been used.")
newusers_name = [newname.title() for newname in new_users_name]
# 使用内置函数set;先将列表转换为集合,因为集合是不重复的,故直接删除重复元素,而且输出结果为排序后的
newusersname = list(set(newusers_name))
print("New users_name are:")
print(newusersname)
在最后查看新用户名的时候,将曾使用过的与重复的用户名删除后再打印出来
将重复用户名删除使用的是内置函数set(),先将列表转换为集合,因为集合是不重复的,故直接删除重复元素,而且输出结果为排序后的
删除曾使用过的用户名使用的是remove()
输出结果展示如下:(我在过程中输入了三次新的用户名:Jacken)
书本自带答案如下:
current_users = ['eric', 'willie', 'admin', 'erin', 'Ever']
new_users = ['sarah', 'Willie', 'PHIL', 'ever', 'Iona']
current_users_lower = [user.lower() for user in current_users]
for new_user in new_users:
if new_user.lower() in current_users_lower:
print("Sorry " + new_user + ", that name is taken.")
else:
print("Great, " + new_user + " is still available.")
输出结果: