@Goobee

Увеличение списка до нужной длинны в pyhon?

Добрый день! Мне нужно из списка получить определенные данные, я хотел их получать по порядковому номеру в списке, но к сожалению, списки разной длинны, и данные приходят не правильно. Я хотел увеличить максимальную длину списка, до 49, так как это самый длинный список. Но у меня не получается это сделать. Когда я пытаюсь посмотреть какой список получился выдает None. Подскажите пожалуйста как это исправить.
response = request_2.json()
for key in response.keys():
    new = response[key]
    if isinstance(new, dict):
        values = new['Items']
        new_values = values[0]
        if len(new_values['Values']) < 49:
            test = new_values['Values']
            zero = test.append(0)
            pprint(zero)

654cdc3dde320307957054.png
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
@maximq
QA Engineer
Не усложняйте алгоритм. Лучше воспользуйтесь получением значения по умолчанию (На крайний случай конструкцию try/except):
response.get("key", default_value) - для словаря
response[index] if index < len(response) else default_value - для списка
default_value - значение, если такого индекса нет в списке. Например "Значение не установлено" или просто 0.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Maksim_64
@Maksim_64
Data Analyst
Обычно когда мы имеем дело с множеством списков разной длинны и нужно выбрать из каждого по индексу то zip_longest из itertools решает проблему. Способов применения может быть много, простейший выглядит вот так
from itertools import zip_longest 
x = [1, 2, 3, 4, 5, 6, 7] 
y = [8, 9, 10] 
z = [9, 3, 4, 5]
list(zip_longest(x,y,z))
Ну а там в зависимости от того как эти списки получаются и что на выходе можно по разному реализовать. zip_longrst имеет параметр fillvalue, чем заполнять по умолчанию None. Ну и надо помнить про распаковку, то есть если все эти списки собраны ну например в какой то один список то можно использовать так.
data = [x,y,z]
list(zip_longest(*data))
Ответ написан
Комментировать
@chemdev
append добавляет значение в список test и возвращает None, распечатывай список test
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы