Как создать две точки для y с одинаковым x? - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь создать код Python для создания «двойных точек», где одно значение для x будет принимать два значения для y для любой ситуации.Вот пример данных:

1;5
2;-2
3;4
4;10.4
5;6

где первый столбец (x), это просто индекс для положения данных (y).

Построение этих данных по x и y,будет формировать прямую линию.

Результат, который я хотел бы получить:

1;5
1;-2
2;-2
2;4
3;4
3;10.4
4;10.4
4;6
5;6

Это приведет к созданию прямоугольного графика.Значение x имеет соответствующее значение y, но то же самое значение x также имеет значение y для его "x + 1", и поэтому для остальных данных.

Я пытаюсь сделатьчто-то вроде этого, однако безуспешно:

l = [5, -2, 4, 10.4, 6]
m = []
i = 0
i = i+1
for i in range(len(l)):
    m.append(l[i])
    if i < len(l)-1:
        m.append([l[i][0], l[i+1][1]])
    print('{}, {}\n' .format(i, m[i]))

Ошибка, кто прилагает это 'int' object has no attribute '__getitem__'

Я новичок в Python, и это часть моих исследований, так что если кто-то может помочь мне имогу объяснить, где я иду не так, я был бы признателен.

Ps столбец x не является частью данных, это просто индекс (например, время).И данные (столбец у) могут быть отрицательными, плавает ... все типы чисел

1 Ответ

0 голосов
/ 28 сентября 2019

может быть сделано с использованием списка, как показано ниже

from itertools import chain
ls = [5, -2, 4, 10.4, 6]
list(chain(*([(i,v)]*2 for i, v in enumerate(ls))))[1:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...