python中怎么比较两个列表-Python两个列表元素比较

Python两个列表元素的对比经常遇到,如何正确的比较?

知识点:列表解析。

详解:

列表解析 List Comprehensions

表达式:[expression for iter_val in iterable if cond_expr]

[expression]:最后执行的结果

[for iter_val in iterable]:这个可以是一个多层循环

[if cond_expr]:两个for间是不能有判断语句的,判断语句只能在最后;顺序不定,默认是左到右。

代码操作:

current_names = ["java","go","selenium","appium","python"]

new_users= ["java","go","javascript","HTTP","C++"]

current_names= [current_name.lower() for current_name incurrent_names]

new_users= [new_user.lower() for new_user innew_users]for new_user innew_users:if new_user incurrent_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 += 121

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

如果让加入的新名称一直存放在列表中,并且修改成功后还可以继续修改,代码如何操作?

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值