誰も私に次の問題を助けることができますか? 辞書を返す前の関数があります。今私は新しいものを作るためにこの関数が必要ですが、私は辞書で何かする必要があります。私が何をしようとしているかを示すために、dictionary(fasta_filename)
は私の以前の機能です。関数の出力を使って辞書を作成する方法は?
def test(fasta_filename, minMW, maxMW):
interval = minMW, maxMW
for key, value in dictionary(fasta_filename).items():
if value in interval:
print(key)
else:
print('intervals do not match')
これはちょうど私が何をしたいしようとし始めているが、あなたはそれを行うにしようと、私は持っている主な問題は.items()
のようなあなたが辞書でできることは、動作していないということです関数。エラーは'NoneType' object has no attribute 'items'
と表示されます。 function.items()
の場合は、その機能は辞書であると仮定しているが、そうではないと考えているので、私はこのエラーを理解している。 私はまだこれすべてに新しい、おそらくあなたが言うことができるが、誰かが私にヒントを与えることができればそれを感謝します。 :)
ここにはいくつかの問題があります:(a) 'value in interval'では、間隔に対して値をチェックするのではなく、値が' minMW'または 'maxMW'であるかどうかをチェックします。さらに、この関数は出力を提供しません。入出力は 'print'です。あなたは 'return'キーワードで物事を'返す '。 –
あなたの 'dictionary'関数は少なくとも' None'を返します。その場合、 'dictionary(fasta_filename).items()'は動作しませんが、あなたの関数が 'dict'オブジェクトを実際に返した。 'dictionary'関数を見ることなく、私は推測しかできません。 –
'function.items()'は 'dictionary.items()'とは異なり、エラーは少し異なります。 'AttributeError: 'function'オブジェクトには 'items'属性がありません。 'がありますが、あなたのケースでは' ''' NoneType ''オブジェクトに属性 'items'" 'がありません。あなたは*関数*を正確に呼び出すので、 '辞書(...)' - 関数を呼び出すと、 '.items()'メソッド呼び出しは関数呼び出しの*戻り値*を処理しています。この場合、エラーメッセージはあなたに 'NoneType'、つまり*が' None' *であることを伝えています。 –