아무도 다음 문제를 해결할 수 있습니까? 사전을 반환하는 이전 함수가 있습니다. 이제이 함수를 새로 만들려면 함수가 필요하지만 사전으로 뭔가를해야합니다. 내가하려는 일을 보여주기 위해 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()
을 사용하면 사전에 IS라는 함수가 있다고 가정하기 때문에이 오류를 이해합니다. 나는 아직도이 모든 것에 대해 새롭고, 아마도 당신은 말할 수 있지만, 누군가가 나에게 힌트를 줄 수 있다면 그것을 고맙게 여길 것이다. :)
여기에 몇 가지 문제가 있습니다 : (a)'value in interval'에 의해 간격에 대해 값을 검사하지 않고, 값이'minMW' 또는'maxMW'인지 확인하십시오. 게다가이 함수는 출력을 제공하지 않고 I/O 인'print'를합니다. 'return' 키워드로 물건을 돌려줍니다. –
당신의'dictionary' 함수는 적어도'None'을 몇 번이나 리턴합니다.이 경우'dictionary (fasta_filename) .items()'는 작동하지 않지만 함수가 실제로'dict' 객체를 리턴하면 * 작동합니다 . 'dictionary' 함수를 보지 않고서는 추측 만 할 수 있습니다. –
'function.items()'는'dictionary.items()'를 사용하지 않고 에러가 약간 다를 것입니다.'AttributeError : 'function'객체에 'items'속성이 없습니다. ',하지만 당신의 경우에는 '' ''NoneType ''객체에는 'items' "'속성이 없습니다. 'dictionary (...)'<- 함수를 호출하면'.items()'메소드 호출이 함수 호출의 * 반환 값 *에서 작동하고 있기 때문에, 이 경우 오류 메시지가 당신에게'NoneType'을 말하고 있습니다. 즉, *는'None' *입니다. –