2015-09-06 17 views
0

我有列表或數組或元組處理:計數列表和數組中的元素相繼

A = [1,1,1,-1,-1,-1,-1,1,1,1,-1,-1] 
AA = [a,a,b,b,b,a,b,b,b,b,b,a,a] 

我想類似下面的結果:

B = [3,-4,3,2] 
BB ={a:2, b:3, a:1, b:5, a:2} 
+0

你不是指'B = [3,-4,3,-2]'? –

+0

是的,對不起,錯字 –

回答

1
A = [1,1,1,-1,-1,-1,-1,1,1,1,-1,-1] 
AA = ['a','a','b','b','b','a','b','b','b','b','b','a','a'] 
var = 0 
counter = 0 
B = [] 
BB = [] 
for num, val in enumerate(A): 
    if var: 
     if var==val: 
      count = count + val 
     else: 
      var = val 
      B.append(count) 
      count = val 
    else: 
     var = val 
     count = val 
    if num == len(A) - 1: 
     B.append(count) 

var = 0 
counter = 0 
for num, val in enumerate(AA): 
    if var: 
     if var==val: 
      count = count + 1 
     else: 
      BB.append([var, count]) 
      var = val 
      count = 1 
    else: 
     var = val 
     count = 1 
    if num == len(AA) - 1: 
     BB.append([val, count]) 

我不'不要使用字典作爲secound,因爲如果您每次使用字典時都會保存'a'的值,那麼您將覆蓋該值,因此如果您願意,可以更好地使用另一個列表或元組。

+0

非常感謝您的好解答 –

+0

Your Welcome = D –