2016-05-05 1 views
1

В Python 3, у меня есть вложенный списокКак изменить значение «столбца» вложенного списка в python?

my_list= [ 
    [2,2,2,2], 
    [3,3,3,3], 
    [4,4,4,4] 
] 

, и я хотел бы изменить все значения второго столбца 0, чтобы получить

my_list= [ 
    [2,0,2,2], 
    [3,0,3,3], 
    [4,0,4,4] 
] 

Теперь, что я могу сделать is

for i in range(len(my_list)): 
    my_list[i][1] = 0 

но, похоже, это не очень «pythonic», я прав? Есть ли более разумный способ сделать это, не используя длину массива?

В Numpy я мог бы использовать my_list[:,2]=0.

+0

Можете привести пример результата, который вы хотите? –

+0

@AbhinavUpadhyay Отредактированный вопрос, чтобы добавить пример результата. – DdD

+0

Я добавил ответ. –

ответ

4

Более вещий путь будет следующим:

In [9]: for inner_list in my_list: 
    ...:  inner_list[1] = 0 
    ...:  

In [10]: my_list 
Out[10]: [[2, 0, 2, 2], [3, 0, 3, 3], [4, 0, 4, 4]] 

В Python, когда цикл по спискам или коллекций, вам не нужно использовать range(len(my_list)), петля for знает, когда остановиться.

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