2016-09-23 6 views
-1

dict_keys()内のリストを整数に変換して別のシステムに送信するためのトリガーとして使用する方法を探しています。私のコード(以下)は、10個のカテゴリに属する​​100語(新しい行にそれぞれ単語を含むtxtファイル)のリストをインポートします(例えば、最初の10語はカテゴリ1に属し、2番目の10語はカテゴリ2などに属します。 )。dict_keysリストを整数に変換するには

コード:私は必要なもの

from numpy.random import choice 
from collections import defaultdict 

number_of_elements = 10 

Words = open('file_location').read().split() 

categories = defaultdict(list) 
for i in range(len(words)): 
    categories[i/number_of_elements].append(words[i]) 

category_labels = categories.keys() 

category_labels 

出力

dict_keys([0.0, 1.1, 2.0, 3.0, 4.9, 5.0, 0.5, 1.9, 8.0, 9.0, 1.3, 2.7, 3.9, 9.2, 9.4, 7.2, 4.2, 8.6, 5.1, 5.4, 3.3, 1.0, 6.6, 7.4, 7.7, 8.4, 5.8, 9.8, 0.7, 8.8, 2.1, 7.0, 6.4, 4.3, 0.1, 2.5, 3.8, 1.2, 6.9, 7.1, 5.6, 0.4, 5.3, 2.9, 7.3, 3.5, 9.5, 8.2, 2.8, 3.1, 0.9, 2.3, 8.1, 4.0, 6.3, 6.7, 4.5, 0.2, 1.7, 2.2, 8.9, 1.4, 7.6, 9.1, 7.8, 5.5, 4.8, 0.6, 3.2, 2.4, 6.5, 9.9, 9.6, 1.5, 6.0, 3.7, 4.7, 3.4, 5.9, 4.1, 1.6, 6.8, 9.3, 3.6, 8.5, 8.7, 0.3, 0.8, 7.5, 5.2, 2.6, 4.6, 5.7, 7.9, 6.1, 1.8, 8.3, 6.2, 9.7, 4.4]) 

それは6.7だった場合、私はポイント(例えば前に最初の番号を希望、私はちょうどintとして6をしたい)。

ご協力いただきありがとうございます。

答えて

4

リストの理解度を使用してキーを整数に変換するだけです。

[int(k) for k in categories] 

あなたは直接整数のカテゴリにではなく、浮動小数点値によって自分の価値観をバケットすることもできます。:辞書を超える反復が直接足りるとして、ここで.keys()を呼び出す必要がないことに注意してください

categories = defaultdict(list) 
for i, word in enumerate(words): 
    categories[int(i/number_of_elements)].append(word) 

私はenumerate()を使用して、を使用し、wordsに索引付けするのではなく、索引と単語をペアにしました。

+0

キーが複製されると '0.5 == 0'と' 0.0 == 0'はデータを失います!質問は悪い考えと答えを得ました.... – dsgdfg

+0

@dsgdfg:OP *が整数値でバケツにしたいかもしれない理由です。しかし、コードのどこにデータが失われていますか? –

+0

あなたは '真'だが、それをした後にインデックスを失う。後に値を使用/比較する方法は? – dsgdfg

関連する問題