Mam dwie listy, X i Y. Chcę mieć te listy utworzyć plik o wartościach zapisanych jako x, y.

W tej chwili mogę je napisać do pliku, ale jego tylko pojedyncze wartości w każdej komórce Excel i potrzebuję tego, aby wynosić X, Y.

Oto, co mam do tej pory:

import random as rd

X = []
Y = []

npts = 1000

#print (rd.random()*1000.00)

L = range(npts)

for n in L:
     x = (rd.random()*1000.00)
     X.append(x)
     y = (rd.random()*1000.00)
     Y.append(y)
    
#print X
#print Y

import numpy as np

#print min(X)
#print max(X)
#print min(Y)
#print max(Y)
#print np.mean(X)
#print np.mean(Y)

Xsub = []
Ysub = []

mxSubX = (np.mean(X) + 100)
mnSubX = (np.mean(X) - 100)
mxSubY = (np.mean(Y) + 100)
mnSubY = (np.mean(Y) - 100)

#print mxSubX
#print mnSubX
#print mxSubY
#print mnSubY

for n in X:
    if (n > mnSubX)and (n < mxSubX):
        Xsub.append(n)

#print Xsub

for n in Y:
    if (n > mnSubY)and (n < mxSubY):
        Ysub.append(n)

#print Ysub

f = open('lab4.csv','w')

for n in Xsub:
    f.write(Xsub,Xsub)

f.close()

Edytować:

for n in Xsub:
    f.write(Xsub,Xsub)

Jego jest moja próba wprowadzenia wartości z tych dwóch list jako X, Y (przecinek jako ogranicznik) w tej samej komórce w Excelu. To nie była dobra próba. Moje pożądane wyjście to coś w rodzaju:

>Xsub value, Ysub value
>Xsub value, Ysub value
>Xsub value, Ysub value
>Xsub value, Ysub value

Edytuj 2: To właśnie skończyło się działać:

f2 = open('subXY.txt','w')        
I2 = range(1000)

for i in I:
     #print (str(Xsub[i]) + ',' + str(Ysub[i]))
     f2.write(str(Xsub[i]) + ',' + str(Ysub[i]))
0
Kristine 2 październik 2020, 22:07

1 odpowiedź

Najlepsza odpowiedź

Po utworzeniu Xsub & amp; Ysub, możesz napisać parę (Xsub[i], Ysub[i]) w pliku w następujący sposób:

with open('lab4.csv','w') as f:
    for x, y in zip(Xsub, Ysub):
        f.write("%s,%s\n" % (x, y))
0
akazuko 2 październik 2020, 19:14