在Python中扩展列表列表中的元素

时间:2018-02-12 10:06:34

标签: python append extend

我需要填充一个列表,列表中的零到一定范围。我正在计算感染期间的利润减少(a_x)。在感染之后,我的所有3个系统都必须用零来计算利润。计划范围是50年,因此我需要将列表列表中的元素(tilde_Pi_)扩展为分别包含每个子列表中的50个元素。

# Parameters needed for the calculation
year = np.arange(50)
a_x = list(np.arange(5))
Y_ = [2, 8, 12]
C_ = [620, 2000, 4000]
p = 500
r = 0.03
RC_ = [1000, 5000, 10000]
m_ = [50, 30, 15]
ARC_ = [((RC_[i] * r) / (1 - (1+r) ** (-m_[i]))) for i in range(0, 3)]

# Relevant calculation
tilde_Y_ = [[(Y_[i] * 0.8 ** a_x[a]) for a in a_x] for i in range(0, 3)]
tilde_C_ = [[(C_[i] * 0.8 ** a_x[a]) for a in a_x] for i in range(0, 3)]
tilde_Pi_ = [[((p * tilde_Y_[i][a]) - tilde_C_[i][a] - ARC_[i])
              for a in a_x] for i in range(0, 3)]

我试着写一个.extend语法,但是出了点问题

tilde_Pi_ = [tilde_Pi_[i].extend([0] * (len(year) - len(tilde_Pi_[i]))) 
             for i in range(0, 3)]

有没有人知道如何将我的列表列表中的3个列表(tilde_Pi_)扩展为分别包含50个元素,前5个(len(a_x))如上所述计算,其余部分由零填充?

1 个答案:

答案 0 :(得分:1)

以这种方式尝试:

for i in range(0, 3):
    tilde_Pi_[i].extend([0] * (len(year) - len(tilde_Pi_[i]))) 

扩展子列表的方法是listname[index].extend(new_element)

希望这有帮助!