qq_51028683 2023-04-01 16:04 采纳率: 100%
浏览 13
已结题

python入门问题之使用多个列表

python入门问题
问题是在读取列表的时候不区分大小写,就是说只要两个列表中元素大小写相等就要排除,原题如下:
创建一个至少包含5个用户名的列表,并将其命名为 current_users
再创建一个包含5个用户名的列表,将其命名为 new_users,并确保其中有一个两个用户名也包含在列表 current_users中
遍历列表 new_users,对于其中的每个用户名,都检查它是否已被使用。 如果是,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
确保比较时不区分大小写。 换句话说,如果用户名‘John’已被使用,应拒绝用户名‘JOHN’
我做的是这样的:


current_users = ['WANGBING','zhaosi','admin','litian','bin','qingtian']
current_users1 = []
for current_user in current_users:
   current_users1.append(current_user.upper())
new_users = ['zhaosi','wangbing','lixiang','zhangning','LITIAN']
for new_user in new_users:
       if  new_user.upper() in  current_users1:
               print('you need to write anther name')
       else:
               print('you can use it for name.') 


我在练习前做了一个副本储存大写信息,方便之后比较
网上做的:



```python
current_users = ['li','lo','lu','ly','ln']
new_users =['li','lo','km','kl','kh']
for user in new_users:
    if user.lower() in [current_user.lower() for current_user in current_users]:               
        print('该用户名已被使用,请输入别的用户名')
    else:
        print('该用户名未被使用')

我想知道 if语句中是啥意思,为什么大写和遍历能同时进行不报错,还有我做的行不行,做副本肯定是增加成本了,还有其他我能看懂的方法嘛?

  • 写回答

2条回答 默认 最新

  • OldHello 2023-04-01 16:30
    关注

    if语句展开后和你的写法没太大区别,你是用大写判断,它是用小写判断,这是python里的一种独特写法,你可以搜一下python列表推导式学习一下.

    [current_user.lower() for current_user in current_users] 这里展开结果就是遍历current_users列表,把里面的每一项都变成小写,然后返回一个列表.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 4月1日

悬赏问题

  • ¥20 ue5运行的通道视频都会有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数