Вложенные списки и списки

Я довольно новичок в Python, и мне трудно понять, как применить понимание списка к части вложенного списка (в частности, на уровне индекса).

Например, если у меня есть следующее:

my_list = [[1,2], [3,7], [6,9], [4,3]] new_list = [[i*2 for i in sublist] for sublist in my_list] 

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

3 Solutions collect form web for “Вложенные списки и списки”

Более общая версия mac :

 >>> my_list = [[1,2], [3,7], [6,9], [4,3]] >>> new_list = [[v*2 if i==0 else v for i,v in enumerate(sublist)] for sublist in my_list] >>> new_list [[2, 2], [6, 7], [12, 9], [8, 3]] 

Вы ищете это?

 >>> my_list = [[1,2], [3,7], [6,9], [4,3]] >>> [[sublist[0] * 2, sublist[1]] for sublist in my_list] [[2, 2], [6, 7], [12, 9], [8, 3]] 

EDIT: Вышеупомянутое решение не будет хорошо масштабироваться, если у вас есть подсписок из многих элементов. Если это так, альтернативой может быть использование сопоставления:

 >>> my_list = [[1,2], [3,7], [6,9], [4,3]] >>> def double_first(list_): ... list_[0] *= 2 ... return list_ ... >>> map(double_first, my_list) [[2, 2], [6, 7], [12, 9], [8, 3]] 

EDIT2: решение в моем первом редактировании позволяет реализовать любой тип манипуляций в подсписках, но если операция является базовой и зависит только от индекса подписок, решение Дэна будет работать быстрее.

НТН!

Вы имеете в виду что-то вроде этого:

 my_list = [[1,2], [3,7], [6,9], [4,3]] new_list = [sublist[0]*2 for sublist in my_list] Output: new_list == [2, 6, 12, 8] 

кроме того, вы забыли поместить запятые между своими подсписками (Исправлено в моем ответе)

Я предполагаю, что под индексом 1 вы понимаете первый элемент.
Если вы действительно имеете в виду второй элемент (который является индексом 1), вы будете использовать sublist[1] вместо sublist[0] .

  • Как отключить перенаправление реестра на Python?
  • из списка целых чисел, получить номер, ближайший к данному значению
  • Что означает locals () '] в Python?
  • Нарезка списков Python с произвольными индексами
  • Как добавить к списку в словаре?
  • Объединение двух отсортированных списков в Python
  • Получите максимальное значение из списка со списками?
  • Вычитание по списку множеств
  • Python - лучший язык программирования в мире.