知识点:列表解析。
详解:
列表解析 List Comprehensions
表达式:[expression for iter_val in iterable if cond_expr]
代码操作:
current_names = ["java","go","selenium","appium","python"] new_users = ["java","go","javascript","HTTP","C++"] current_names = [current_name.lower() for current_name in current_names] new_users = [new_user.lower() for new_user in new_users] for new_user in new_users: if new_user in current_names: print(new_user + " 用户名已被使用") else: print(new_user + " 用户名可以使用")
运行结果:
java 用户名已被使用
go 用户名已被使用
javascript 用户名可以使用
http 用户名可以使用
c++ 用户名可以使用
拓展练习:
设置微博名时,常会遇到"用户名已被占用"情况,那么如何使用Python进行简单的实现?
设计思路:
1、设置一个列表,用于存储全网用户名称(新名称则添加、替换名称则自动删除)
2、用户提交名称时,列表进行一次查询,查看是否有重复,并做相关提示
3、不区分大小写,即:PYTHON/Python/python/pYTHOn....默认是一个名字,提交会提醒重复。
代码如下:
1 """ 2 3 current_names = ["solo", "James", "echo", "JOY", "Tump", "AOBAMA", "新浪新闻", "新浪NEWS", 4 "新浪NBA", "ChinaNEWS"] # 随意列举几个 5 6 Num_Time = 0 #定义编辑次数,大于3次则退出 7 8 while Num_Time <= 3: 9 10 user_name = input("Please input your name:") 11 user_name = user_name.lower() 12 new_users = [] 13 new_users.append(user_name) 14 15 current_names = [current_name.lower() for current_name in current_names] # 列表解析 16 new_users = [new_user.lower() for new_user in new_users] 17 18 if user_name in current_names: 19 print(user_name + "用户名称已被占用,请重试。") 20 Num_Time += 1 21 22 else: 23 print(user_name + "用户名可以使用,请提交。") 24 current_names.append(user_name) 25 print("当前用户名为:" + user_name) 26 print("用户名称列表: " + str(current_names)) 27 break
运行结果:
Please input your name:solo solo用户名称已被占用,请重试。 Please input your name:nbs nbs用户名可以使用,请提交。 当前用户名为:nbs 用户名称列表: [‘solo‘, ‘james‘, ‘echo‘, ‘joy‘, ‘tump‘, ‘aobama‘, ‘新浪新闻‘, ‘新浪news‘, ‘新浪nba‘, ‘chinanews‘, ‘nbs‘] Process finished with exit code 0
如果让加入的新名称一直存放在列表中,并且修改成功后还可以继续修改,代码如何操作?
原文:https://www.cnblogs.com/aszeno/p/12936512.html