Получение ошибки в функции для итерации списка списков - PullRequest
0 голосов
/ 28 января 2020

Я пишу функцию для заполнения списка:

def pad_data(game_data,nofrounds):
    for i in game_data:
        c=len(i)
        if (c<nofrounds):
            r=nofrounds-len(i)
            value=i[-1]
            for k in range(0,r):
                game_data.append(value)

Я получаю следующую ошибку, несмотря на многочисленные попытки:

TypeError: object of type 'int' has no len()

Принимая во внимание, когда я пытаюсь сделать это это как это дает мне результат:

game_data =[[1,2,3,4,6],[1,2,3],[5,6,7,8],[4,5,6,56,0]]               
for i in game_data:
        print(len(i))
5
3
4
5

1 Ответ

0 голосов
/ 28 января 2020

При добавлении значения ваш код добавляет целое число в список game_data. game_data увеличивается при выполнении функции следующим образом:

[[1, 2, 3, 4, 6], [1, 2, 3], [5, 6, 7, 8], [4, 5, 6, 56, 0]]
[[1, 2, 3, 4, 6], [1, 2, 3], [5, 6, 7, 8], [4, 5, 6, 56, 0]]
[[1, 2, 3, 4, 6], [1, 2, 3], [5, 6, 7, 8], [4, 5, 6, 56, 0], 3, 3]
[[1, 2, 3, 4, 6], [1, 2, 3], [5, 6, 7, 8], [4, 5, 6, 56, 0], 3, 3, 8]
[[1, 2, 3, 4, 6], [1, 2, 3], [5, 6, 7, 8], [4, 5, 6, 56, 0], 3, 3, 8]

Обратите внимание, что первоначальный список теперь хранит список из списка и целых чисел, а не только из списка.

len(3) затем даст вам TypeError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...