将范围输出列表写入文本文件或四个数组

2024-03-28 15:09:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它的输出是一组列表[a,b,c,d] [a,b,c,d] [a,b,c,d] [a,b,c,d]

我想要[a,a,a,a] [b,b,b,b] [c,c,c,c] [d,d,d,d]

def meanarr(image, res=None):
    "construct code which runs over a single ccd to get the means"
    a = pyfits.getdata(image).MAG_AUTO
    q = numpy.mean(a)
    s = pyfits.getdata(image).X2WIN_IMAGE
    j = numpy.mean(s)
    f = pyfits.getdata(image).Y2WIN_IMAGE
    z = numpy.mean(f)
    g = pyfits.getdata(image).XYWIN_IMAGE
    h = abs(numpy.mean(g))
    a = [q, j, z, h]
    print a
    s0 = ''
    return res

for arg in sys.argv[1:]:
    #print arg
    s = meanarr(arg)

这是我的函数和程序如何让代码读取一个列表中的所有q所有jzh的列表。我知道我可以将函数分为四个不同的函数,但这仍然不会返回列表中的结果,而是单独输出它们。你知道吗


Tags: 函数imagenumpynone列表defargres
2条回答

你可以这样写:

def meanarr(image, res=None):
    "costruct code which runs over a single ccd to get the means"
    a=pyfits.getdata(image).MAG_AUTO
    q=numpy.mean(a)
    s=pyfits.getdata(image).X2WIN_IMAGE
    j=numpy.mean(s)
    f=pyfits.getdata(image).Y2WIN_IMAGE
    z=numpy.mean(f)
    g=pyfits.getdata(image).XYWIN_IMAGE
    h= abs(numpy.mean(g))
    a=[q,j,z,h]
    return a

data =[meanarr(arg) for arg in sys.argv[1:]]
print zip(*data)
You might be looking for zip. Try that :  

data = [['a','b','c','d'], ['a','b','c','d'], ['a','b','c','d'], ['a','b','c','d']]

print data
print zip(*data)

相关问题 更多 >