前提:我是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("没有只出现一次的元素。")