2015-12-07 30 views
0

說我有一個列表出現時,X:的Python:如何檢查數字的出現在列表中,並在列表中的位置在

x=[1,2,3,4,1] 

如何搜索這個列表,以便我能找到的一個數字的出現次數和它發生的列表位置?

我知道使用方法x.count(num),但這隻顯示出現次數而不是列表位置。 謝謝

+0

'index'會做到這一點,例如'x.index(3)'給出'2'。但它只返回第一個索引。 – 101

+0

有沒有辦法做同樣的操作,但使它返回的不僅僅是第一個索引? –

+0

當然有! https://stackoverflow.com/questions/6294179/how-to-find-all-occurrences-of-an-element-in-a-list – 101

回答

0

您可以生成一個新的列表來存儲發生位置,並且新列表的長度是計數。

>>> x = [1, 2, 3, 4, 1] 
>>> y = [ i for i in xrange(len(x)) if x[i] == 1 ] 
>>> y 
[0, 4] 
>>> len(y) 
2 
+0

完美,謝謝! –

2

與計數器只玩..

>>> from collections import Counter 
>>> x=[1,2,3,4,1] 
>>> Counter(x) 
Counter({1: 2, 2: 1, 3: 1, 4: 1}) 
>>> {y:[i for i,j in enumerate(x) if j == y] for y in Counter(x)} 
{1: [0, 4], 2: [1], 3: [2], 4: [3]} 
相關問題