2017-05-12 5 views
0

{'movieID':[val1、val2]}という形式の複数の一意のキーと値を持つ辞書があります。私は最大val1と最小val2でmovieIDをプリントアウトしたいと思います。 Val1は女性によって与えられた評価であり、Val2は男性によって与えられた評価である。 提案/解決策 これをpythonマッパーとレデューサーのhadoop mapreduceに使用します。デュアル値のキーを持つPython辞書、最大値と最小値を見つける必要があります

答えて

0

あなたはHadoopのを使用する必要はありません。

>>> data = {'614d5a7ed90f43e5b062dbc3afa7f5b1': [7, 14], 'aa9b80ae387e40f5bc351c3ec3f82143': [9, 7], '49f2c238c2f144fab4468faa091e4620': [13, 18], '1c9ea5622aef41e696102d49eb59691e': [17, 18], '8a86455812eb48e4a7c8b13e55192a3f': [5, 18], 'ad5e4bc4b729432482fec1d03510caee': [8, 9], '6ace5755bff2410db2dcf1a45202b273': [11, 16], '571c38be6f0a4748b2400def38f7443c': [1, 6], 'd110b65111bf4737b3ca5a4c10fbd420': [11, 11], '6f6c930ea04d468c934be7c78a739ec8': [13, 13]} 
>>> max(data, key=lambda x: abs(data[x][1]-data[x][0])) #ID with greatest difference 
'8a86455812eb48e4a7c8b13e55192a3f' 
>>> 
+0

それは私に別のMOVIEIDを与えます。 max val1とval2を指定します。または、私が望むように、val1とval2の最大の違いを持つmovieIDがあります。どうやってやるの? – Ali

+0

ありがとうございましたありがとうございます@AJキーがmovieIDの場合、combinedDict.keys()内のキーのval1がval2より大きい場合もあります:combinedDict [key] [0]> combinedDict [key] [1]: \t diff = combinedDict [key] [0] -combinedDict [key] [1] \t combinedF [key] = diff – Ali

関連する問題