2017-01-17 2 views
-1

У меня есть этот небольшой код, который генерирует один элемент на каждой итерации. Существует также одна метка, сгенерированная для каждого элемента.Создание списка python с несколькими элементами и запись в .csv

count = 0 
while (count<10): 
    random.seed() 
    tau = int(math.ceil(np.random.uniform(lorange, hirange))) 
    count = count+1 
    print('For', count,'th iter tau is', tau) 

    X = [amplitude * np.exp(-t/tau)] 
    print('And X is', X) 

Это дает мне -

For 1 th iter tau is 253 
And X is [-8.3319888120435905] 
For 2 th iter tau is 733 
And X is [-8.5504619226105234] 
For 3 th iter tau is 6 
And X is [-1.637157007733484] 
For 4 th iter tau is 35 
And X is [-6.5137386619958191] 
For 5 th iter tau is 695 
And X is [-8.544086302536952] 
For 6 th iter tau is 987 
And X is [-8.5805340921808924] 
For 7 th iter tau is 807 
And X is [-8.5611651675760001] 
For 8 th iter tau is 820 
And X is [-8.5628471889130697] 
For 9 th iter tau is 799 
And X is [-8.5601030426343065] 
For 10 th iter tau is 736 
And X is [-8.5509374123154984] 

Теперь я хочу, чтобы получить список список, содержащий все значения X.

Я проверил стек вопрос here и сделал this-

myList = [] 
myList.append([X for _ in range(no_tau)]) 
print(myList) 

Но вместо того, чтобы все элементы X в виде списка, я получаю тот же элемент (последнее значение X) для несколько раз.

[[[-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984], [-8.5509374123154984]]] 

Как я могу получить все X-элементы в списке вместо одних и тех же нескольких раз?

Также я хочу позже написать этот список в формате .csv. Любая помощь будет оценена. Спасибо

ответ

2

X - это список с одним элементом. Затем, когда вы делаете:

myList.append([X for _ in range(no_tau)]) 

вы добавляете этот список с единственным элементом (последняя) len(range(no_tau)) раз.

Вам нужно добавить его, когда вы итерации. Что-то вроде этого:

count = 0 
myList = [] 
while (count<10): 
    tau = int(math.ceil(np.random.uniform(lorange, hirange))) 
    count = count+1 
    X = amplitude * np.exp(-t/tau) 
    myList.append(X) 

Вам не нужно, чтобы x был списком, sino un float. Для этого вам нужно удалить []

+0

Вы имеете в виду 'myList [-1]'? См. [Учебник по Python] (https://docs.python.org/3.6/tutorial/introduction.html#lists). Вы удалили вопрос: S – Lucas

+0

спасибо большое :) – zerogravty

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