MyTetra Share
Делитесь знаниями!
Вложенные генераторы двумерных массивов
Время создания: 31.08.2017 21:01
Текстовые метки: knowledge
Раздел: Python - Types data - Массивы
Запись: xintrea/mytetra_db_mcold/master/base/15042024798gkqi59vik/text.html на raw.githubusercontent.com

Для создания двумерных массивов можно использовать вложенные генераторы, разместив генератор списка, являющегося строкой, внутри генератора всех строк. Напомним, что сделать список из n строк и m столбцов можно при помощи генератора, создающего список из nэлементов, каждый элемент которого является списком из m нулей:

1

2

[[0* m for i in range(n)]

Но при этом внутренний список также можно создать при помощи, например, такого генератора: [0 for j in range(m)]. Вложив один генератор в другой, получим вложенные генераторы:

1

2

[[0 for j in range(m)] for i in range(n)]

Но если число 0 заменить на некоторое выражение, зависящее от i (номер строки) и j (номер столбца), то можно получить список, заполненный по некоторой формуле.

Например, пусть нужно задать следующий массив (для удобства добавлены дополнительные пробелы между элементами):

1

2

3

4

5

60  0  0  0  0  0

0  1  2  3  4  5

0  2  4  6  8 10

0  3  6  9 12 15

0  4  8 12 16 20

В этом массиве n = 5 строк, m = 6 столбцов, и элемент в строке i и столбце j вычисляется по формуле: a[i][j] = i * j.

Для создания такого массива можно использовать генератор:

1

2

[[i * j for j in range(m)] for i in range(n)]


[[i * j for j in range(m)] for i in range(n)]

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования