python输出最小和第二小的元素位置

我有一个列a=[2,3,6,1,3,1,2]最小的元素对应输出为2,第二小的元素输出为1,其他为0.结果应该是:result=[1,0,0,2,0,2,1]应为实际的列很... 我有一个列 a=[2,3,6,1,3,1,2]
最小的元素对应输出为2,第二小的元素输出为1,其他为0.
结果应该是:result=[1,0,0,2,0,2,1]
应为实际的列很大,所以想找快速、简单的方法
求帮忙啊~~~
展开
 我来答
一姐韩梅
推荐于2018-03-27 · TA获得超过895个赞
知道小有建树答主
回答量:764
采纳率:58%
帮助的人:226万
展开全部
a=[2,3,6,1,3,1,2]
b=sorted(list(set(a)))
for i,k in enumerate(a):
    if a[i]>b[1]:
        a[i]=0
    elif a[i]==b[1]:
        a[i]=1
    else:
        a[i]=2
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lejoylejoy
2013-05-15 · TA获得超过1003个赞
知道小有建树答主
回答量:513
采纳率:75%
帮助的人:450万
展开全部
a=[2,3,6,1,3,1,2]
b=list(set(a))           #将列表去重、排序,以便得到最小、第二小的值
dic={b[0]:2,b[1]:1}
result=[]
for data in a:
    if dic.has_key(data):
        result.append(dic[data])
    else:
        result.append(0)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式