0

x 辞書のすべての出現をカウントする最も簡単な方法を使用しようとしていますが、結果はありません。ライブラリをインポートしたり、for var in、if x、if not、if is 以外のステートメントを使用したりすることはできません。

スクリプトの結果は次のようになります。例:

list = [1,2,1,'a',4,2,3,3,5,'a',2]

code

print occurrences(list)

result

1 = [0, 2]
2 = [1, 5, 10]
a = [3, 9]
and so on

@edited 修正済みテキスト

4

2 に答える 2

4
>>> l = [1,2,1,'a',4,2,3,3,5,'a',2]
>>> pos = {}
>>> for i, n in enumerate(l):
...     pos.setdefault(n, []).append(i)
... 
>>> pos
{'a': [3, 9], 1: [0, 2], 2: [1, 5, 10], 3: [6, 7], 4: [4], 5: [8]}
>>> for k, v in pos.items():
...     print "%s = %s" % (k, v)
... 
a = [3, 9]
1 = [0, 2]
2 = [1, 5, 10]
3 = [6, 7]
4 = [4]
5 = [8]
于 2012-10-23T14:42:16.460 に答える
0

OK、ライブラリや関数を使用せずに:

lis = [1,2,1,'a',4,2,3,3,5,'a',2]
dic={}
index=0
for item in lis:
    if item in dic:
        dic[item]+=[index]
        index+=1
    else:
        dic[item]=[index] 
        index+=1
print dic   

出力:

{'a': [3, 9], 1: [0, 2], 2: [1, 5, 10], 3: [6, 7], 4: [4], 5: [8]}
于 2012-10-23T14:51:36.383 に答える