2015-01-15 3 views
0

Я новичок в python и изучаю CodeAcademy.com; У меня есть проблема:Невозможно сделать код со списком в python

Изменить list_function так что:

  1. Добавить 3 в элемент с индексом один из списка.
  2. Сохраните результат обратно в индекс один.
  3. Верните список.

Вот мой код:

def list_function(x): 
    return x 

n = [3, 5, 7] 
n.insert(1,3) 
print list_function(n) 

я получаю только ошибку, что я должен делать?

Моя проблема состоит в том, чтобы понять варианты номер 2 и 3.

+0

Я не вижу * ошибки * здесь. – Maroun

+0

Если вы используете python 3, я думаю, вам нужно использовать печать с синтаксисом функции i.e print (list_function (n)) –

+0

@JohnGreenall: позволяет запутать пользователя еще немного. –

ответ

2

Вы путаете добавление с вставив, пункт 1:

  1. Добавить 3 в элемент с индексом один из списка.

Вы расценили это как вставка:

n.insert(1,3) 

, но на самом деле они имели в виду арифметическую операцию:

n[1] + 3 

Это добавляет 3+) карапуз в позиция по индексу одна ([1]) в списке (n).

Вы затем вставить, что обратно в список в тот же индекс:

n[1] = n[1] + 3 

Все это должно быть сделано внутри вашей функции:

def list_function(some_list): 
    some_list[1] = some_list[1] + 3 # step 1 and 2 
    return some_list     # step 3 
+0

Спасибо за информацию .. Теперь у меня есть. – MuteX

+1

Пятно на; вопрос был вызван перегруженным значением 'add'. Для записи, если вы хотите объединить шаги 1 и 2 в один оператор, вы можете рассмотреть возможность использования 'some_list [1] + = 3' (хотя это может считаться« менее явным »о том, что происходит). –

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