2017-01-17 5 views
-1

Ich habe diesen kleinen Codecode, der bei jeder Iteration ein Element generiert. Es wird auch ein Label für jedes Element generiert.Python-Liste mit mehreren Elementen erstellen und in .csv schreiben

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) 

Das gibt mir -

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] 

nun eine Liste, eine Liste erhalten, enthaltend die alle X-Werte ich will.

überprüfte ich die Stapel Frage here und tat this-

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

Aber anstatt alle X-Elemente als Liste zu bekommen, ich bin immer gleiche Element (die letzte X-Wert) für mehrere Male.

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

Wie kann ich alle X-Elemente in der Liste anstelle der gleichen mehrmals erhalten?

Auch ich möchte später diese Liste im .csv-Format schreiben. Jede Hilfe wird geschätzt. Danke

Antwort

2

X ist eine Liste mit einem einzelnen Element. Dann, wenn Sie tun:

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

Sie diese Liste mit dem einzigen Element hinzufügen (die letzte) len(range(no_tau)) mal.

Sie müssen es bei der Iteration hinzufügen. Etwas wie das:

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) 

Sie brauchen nicht, dass x eine Liste war, sino un float. Dafür brauchen Sie die []

+0

entfernen Sie meinen 'myList [-1]'? Siehe [Python-Lernprogramm] (https://docs.python.org/3.6/tutorial/introduction.html#lists). Sie haben die Frage gelöscht: S – Lucas

+0

vielen Dank :) – zerogravty

Verwandte Themen