Для списка списка (мы называем это A), я хочу иметь другой список списка. подробности смотрите ниже? - PullRequest
1 голос
/ 01 марта 2020

Предположим, у меня есть список списка.

[[1,2,3,4,5,6], [2,4,6,8,9,10], [10, 11, 12, 13, 14, 15]]

Теперь я хочу список списка, например

[[1,2,0,0,0,0], [2,4,0,0,0,0], [10, 11, 0, 0, 0, 0]]

Есть ли быстрый способ сделать это вместо использования al oop чтобы изменить его. Спасибо.

Редактировать: извините за путаницу. Мне нравится сохранять первые x элементов и изменять остальные до 0. Размер каждого подсписка одинаков.

Ответы [ 2 ]

4 голосов
/ 01 марта 2020

Вы можете попробовать это.

for lst in my_list:
    lst[2:]=[0,0,0,0]
print(my_list)
#[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]

Если у вас есть списки разных размеров в списке, и вы хотите изменить только последние 4 элемента на 0 , попробуйте это.

for lst in my_list:
    lst[-4:]=[0,0,0,0]

РЕДАКТИРОВАТЬ:

Я хочу сохранить первые элементы х и изменить остальные на 0.

Попробуйте это.

lst[x-len(lst):]=[0 for i in range(len(lst)-x)] #suggested by dcg

Или

lst[x:]=[0]*(len(lst)-x)
0 голосов
/ 01 марта 2020

Вам нужен следующий код:

if __name__ == "__main__":
    # list modification with zeros
    alist = [[1,2,3,4,5,6], [2,4,6,8,9,10], [10, 11, 12, 13, 14, 15]]

    for x in alist: 
        x[2:] = [0]*4

    print(alist)

Вывод:

[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...