某厂测试开发岗python面试题-找出列表中只出现一次的元素

前提:我是python菜鸟,刚接触python两个月。
最近想看看外面岗位,抱着试试看的心态面的测开,其实只想面测试岗,奈何现在很多都要有开发经验,只能硬着头皮面试了。果不其然,答不出来代码题。事隔半月,天天想着如何解决,并找教程学习python知识。终于今天灵光乍现,在手机上给写出来了。边面试边学python,果然动力倍增。

题目大意:找出一个列表中只出现一次的元素,并打印输出。

# -*- coding: utf-8 -*-

l1 = [10,10,20,30,30,30]
l2 = [l1.count(i) for i in l1]    # 将l1列表中每个元素出现次数依次赋值到l2列表中。

for n in l2:
    if(n != 1):
        continue    # 从l2列表中第一个元素开始判断,不为1则跳到elif语句。
    elif(n == 1):
        m = l2.index(1)
        print("只出现过一次的元素下标为:",m)
        p = l1.pop(m)
        print("只出现一次的元素是:",p)
        break
else:
    print("没有只出现一次的元素。")

更新一把。上面的脚本感觉还有很大优化空间。下面是新脚本,个人感觉更好。
解决了两个问题:
1.用户可自行输入。
2.优化判断代码。

# -*- coding: utf-8 -*-

# 找出列表中只出现过一次的元素。
list1 = input("请输入任意元素,以空格分割,回车结束:").split()
list2 = [list1.count(i) for i in list1]
for n in list2:
    if(n == 1):
        m = list2.index(n)
        p = list1.pop(m)
        print("列表中只出现一次的元素为:", p)
        continue
else:
    print("没有只出现一次的元素。")
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值