私はレシピ/例のために、デコレート、並べ替え、デコレートの手法を変更せずにタプルのリストを索引付けしてきました。例えばコンテナの要素によってコンテナ(タプル、リスト、辞書)のリストをインデックスする方法はありますか?
:私が使用されている手法は、第二要素のdefaultdictを使用して辞書を構築することである
l=[(a,b,c),(x,c,b),(z,c,b),(z,c,d),(a,d,d),(x,d,c) . . .]
from collections import defaultdict
tdict=defaultdict(int)
for myTuple in l:
tdict[myTuple[1]]+=1
そして私は第二からなるリストを作成する必要がリスト内の各項目のタプル内のitemそこに簡単な方法を取得する方法の数がありますされているものの:その後、
tempList=[myTuple[1] for myTuple in l]
とtdict
indexDict=defaultdict(dict)
for key in tdict:
indexDict[key]['index']=tempList.index(key)
に各項目のインデックスを生成明らかにこれは非常にPython的思えません。私は、インデックスを直接取得するために何か魔法を使うことができるはずであると考えて、事例や洞察を見つけることを試みてきました。そのような運はこれまでのところありません。
私は自分のアプローチをもう少し直接取って、tdictを生成できないことを理解しています。
出力は、私は答えはノーだと思いナディアさんから多くのことを学んだ後、インデックス
indexDict={'b':{'index':0},'c':{'index':1},'d':{'index':4},. . .}
と辞書である可能性があります。
彼女の反応はうまくいくものの、必要以上に複雑だと思います。私は簡単に
def build_index(someList):
indexDict={}
for item in enumerate(someList):
if item[1][1] not in indexDict:
indexDict[item[1][1]]=item[0]
return indexDict
私はあなたがしようとしていることに混乱しています。あなたの希望する出力は何ですか?あなたのコードはうまくいきません - "tdict [myTuple [1]] + count ="という行に含まれる数は何ですか? –
予想される出力または構造の例を挙げることができますか? –
申し訳ありません - 私は常に+ = 1に修正する前に+ = countと書くアイテムのカウントを得るために辞書を作成します。私は1つの脳細胞を持っています。 – PyNEwbie