關于怎么獲得,我想其實網上有很多答案。
list.index( )獲得值的索引值,但是如果list中含有的值一樣,例如含有兩個11,22,這樣每次獲得的都是第一個值的位置。
那么怎么去解決這個問題呢?
下面的程序對這個問題做了一定的解答
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : SundayCoder-俊勇# @File : listlearn.py# 怎么獲得list中的相同值的索引值# 請看下列程序s = [11, 22, 33, 44, 22, 11]print s.index(11)# 此時輸出0print s.index(22)# 此時輸出1# 那怎么才能得到11,22相同的值的索引值呢?# 有人說用dict(字典),這個方法也可以# 有人說用defaultdict# 程序如下:from collections import defaultdictd = defaultdict(list)for k,va in [(v,i) for i,v in enumerate(s)]: d[k].append(va)print d# 輸出的結果如下:defaultdict(<type 'list'>, {33: [2], 11: [0, 5], 44: [3], 22: [1, 4]})# 但是有沒有一個更加簡單的方法呢?# 有的,那就是”偷梁換柱“,用一個s1來復制s。s1 = si = s1.index(11)s1[i]=55# 替換s1的11為55(不一定是55只要是列表中沒有的數值就可以)# 再打印s1print s1# 輸出[55, 22, 33, 44, 22, 11]# 下一步可以得到11的位置了print s1.index(11)# 輸出為:5
以上這篇獲取python的list中含有重復值的index方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答