简体   繁体   中英

Appending multiple lists containing numpy array in Python

I want to append multiple lists containing a numpy array. I try with append but it doesn't append the two lists for different t . I present the current and expected outputs.

import numpy as np
N=2
arsigma=[]
for t in range(0,2):
    sigma=0.02109*t*np.ones((2*N*(N+1), 1))
    arsigma.append(sigma)
    arsigma=list(sigma)
    print("sigma =",[sigma])

The current output is

sigma = [array([[0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.],
       [0.]])]
sigma = [array([[0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109],
       [0.02109]])]

The expected output is

sigma=[array([[0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.],
           [0.]]), array([[0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109],
           [0.02109]])]

Use list comprehension instead:

N = 2
arsigma = [0.02109*t*np.ones((2*N*(N+1), 1)) for t in range(2)]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM