массив списков кортежей - PullRequest
0 голосов
/ 07 марта 2019

Мне нужно построить структуру данных, которая представляет собой двумерный массив, в котором каждая ячейка содержит позицию (предыдущей ячейки) и значение с плавающей запятой.Выглядит примерно так:

((x1,y1),v1)... ((xl,ym),vn)
.
.
.
((xa,yb),vc)....

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

edit: для пояснения мне нужно составить массив списков кортежей.Каждый кортеж имеет форму ((row_position, column_position), some_float_value).Список будет содержать некоторое количество этих кортежей.И каждый список должен быть столбцом массива.Который я бы использовал, чтобы проследить. Я использую что-то вроде этого, чтобы сделать диаграмму Витерби для HMM.

     word1 word2 word3..
tag1 tuple1 tuple2 tuple3..
tag2 tuple1 tuple2 tuple3..
.
.
.

1 Ответ

0 голосов
/ 07 марта 2019

Если вы хотите построить матрицу (на самом деле список списков), вы можете использовать это:

data = [
    [((0, 0), 0.0)
     for j in range(5)]
    for i in range(10)]

или то же самое:

data = []
for i in range(10):
    row = []
    for j in range(5):
        cell = ((0, 0), 0.0)
        row.append(cell)
    data.append(row)

Это можетиспользовать так:

>>> data[0][2]                 # get data for row 0, column 2
((0, 0), 0.0)

>>> data[0][5][0][1] = 555     # change data
>>> data[0][5][1] = 7.4        # change data
>>> data[0][5]
((0, 555), 7.4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...