2017-02-14 9 views
0

Начальник Python здесь, я использовал поиск раньше, но я не нашел свою проблему:
Я назначаю длину 3 моих списков, например. называется «Zeilen1» переменной:Максимальное значение в списке -> ТипError: объект 'int' не является вызываемым)

l1 = len(Zeilen1) 

Я делаю это для 2-х других переменных, называемых L2 и L3 таким же образом, с длиной 2 других списков.

Затем вставить переменные в список под названием Laengen:

Laengen = [l1,l2,l3] 

Теперь я хочу, чтобы найти максимум списка.
Я попытался использовать функцию max (s) во всех отношениях, немного запутывая для меня, так это то, что она работала в первый раз. Теперь с каждой попыткой я получаю эту ошибку:

TypeError: 'int' object is not callable

Когда я искал, прежде чем я узнал, что целочисленное значение не отозвано, как обычно называют функцию но я не получить то, что функцию мне нужно для этого.

И немного вопрос: когда я объявляю список со значениями l1, l2, l3 = 0, сначала назначьте другие числа значениям и распечатайте список в конце, который печатает 0,0,0.
Сохраняет ли список только значения, пока я их не вставил?

+3

Добро пожаловать [так!] Пожалуйста, просмотрите [ask] и опубликуйте [mcve]!Кроме того, включите всю трассировку стека, которая приходит вместе с этим 'TypeError' – TemporalWolf

+6

. Вероятно, вы создали переменную с именем' max'. – Ryan

+0

Непонятно, где ваш вопрос на самом деле. Значение вашего списка не динамически обновляется из переменных, нет. –

ответ

1

it worked the first time

Тогда у вас есть значение max, которое является строго целым числом. Например.

max = max(some_list) # this works 

А ты попробуй что снова

max(some_list) # this errors... int not callable 

When I declare the list with the values l1,l2,l3 = 0 first, assign other numbers to the values later and print the list at the end it prints 0,0,0

Вам не нужно l1,l2,l3, вместо того, чтобы использовать список

Laengen = [0,0,0] 
# Laengen[0] = ... 
# Laengen[1] = ... 
+0

Спасибо, это помогло понять проблему и улучшить код списка, но мне нужно «сбросить» значения в моей среде IDE? Я знаю Spyder/Anaconda. – armin

+0

@armin вы имеете в виду перезапуск сеанса переводчика. Вы можете, если хотите, или если не хотите, 'max = __builtin __. Max' также сделает трюк –

+0

Спасибо большое! Это была проблема! И такие вещи, как «Привет», «Спасибо», «Приветствия» не входят в вопрос-пост, поскольку вы их удалили? – armin

0

Могу ли я представить, переменная отладчик:

def debug(*args): 
    print('Variable debugger output:') 
    for arg in args: 
     if arg in ["__builtins__", "inspect", "debug"]: 
      continue # skip these variables 
     try: 
      var = eval(arg) 
      print('{0}: {1} {2}\n'.format(arg, type(var), var)) 
     except (TypeError, NameError): 
      print('{0}: {1}\n'.format(type(arg), arg)) 

Используется в любой момент в вашей программе через debug(*dir()) (например, выход):

res: <type 'dict'> {'#label_Bbb': 'hereaswell...', '#labelA': 'thereissomethinghere'} 
row: <type 'dict'> {} 
sigord: <type 'function'> <function sigord at 0x7fc230710c08> 
sigorder: <type 'function'> <function sigorder at 0x7fc230710f50> 
slicezip: <type 'function'> <function slicezip at 0x7fc230710938> 
sys: <type 'module'> <module 'sys' (built-in)> 
test: <type 'list'> [0, 2, 0, 4, 0, 6, 0, 8, 0, 10, 0, 12] 
timeit: <type 'module'> <module 'timeit' from '/usr/lib/python2.7/timeit.pyc'> 
tup: <type 'tuple'> ((),()) 
weird_list: <type 'list'> [[1, 2, [3], 2], [[[3]], 6], 4, 5] 
x: <type 'int'> 2 

или для конкретной переменной debug(max):

>>> debug(max) 
Variable debugger output: 
<type 'builtin_function_or_method'>: <built-in function max> 

Как сказал cricket_007, если вы перезаписать max = 5 то :

>>> max = 5 
>>> debug(max) 
Variable debugger output: 
<type 'int'>: 5 

Итак, прямо перед вашей ошибкой, оставьте debug(*dir()), и он покажет вам, что все в этом пункте. Вы можете быть удивлены, увидев результат.

Чтобы удалить локальный вар в интерактивном сеансе, используйте del <var>

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