2016-10-03 3 views
-2

Ладно, так что я эту функцию, что мне нужно создать, и я думаю, что код проверки как-то недостатки, и я пытался управлять ею, но мой код до сих пор, кажется, не в состоянииНужна помощь дело с клетчатой ​​здесь

def reversecomp(L): 
    """ assumes L is a list of lists whose elements are ints 
    Mutates L such that it reverses its elements and also 
    reverses the order of the int elements in every element of L. 
    It does not return anything. 
    """ 
    if L == []: 
     return L 
    elif type(L) == int: 
     return L 
    else: 
     return reversecomp(L[1:]) + [reversecomp(L[0])] 

def run_code(L): 
    return reversecomp(L) 
    print(L) 

В этом вопросе говорится, что вам нужно мутировать L. Ваш код должен работать, когда вы это делаете: L = [[0, 1, 2], [1, 2, 3], [3, 2, 1], [10, -10, 100]] reversecomp (L) печати (L)

Тест: run_code ([[0, 1, 2], [1, 2, 3]])

Ваш выход:

[[3, 2, 1], [2, 1, 0]]

Правильный выход:

[[3, 2, 1], [2, 1 , 0]]

Отсутствует

ответ

0

Спектр говорит: «Он ничего не возвращает»; ваша программа делает.

+0

Правильный вывод должен быть тем, что он уже дает в качестве вывода, а затем строкой, где он ничего не возвращает. Weird. – Xangr8

0

L is a list of lists of ints

Итак, почему вы проверка type(L) == int когда type(L) == list всегда верно, в соответствии со спецификацией?

Mutates L

Вы не мутирует L вообще; вы возвращаете новый список. Мутирование L означает делать что-то вроде L[...] = xxx.

It does not return anything.

Вы не должны использовать ключевое слово return вообще в reversecomp.

Смежные вопросы