【发布时间】:2019-08-04 02:16:01
【问题描述】:
以下函数被放置在一个 for 循环中,因为 for 循环,索引可以获得高负值,如下例所示:
C_ki[2][1] = max (C_ki[1][1], C_ki[3][-7] , C_ki[2][0])
# C_ki is defined as:
C_ki = [[0]*(7) for x in range(3)]
C_ik = [[0]*(3) for x in range(7)]
为了计算上面的C_ki[2][1],python给出了一个错误列表索引超出范围,因为负索引。
有没有办法将 C_ki[3][-7] 设置为负索引为零或不考虑 max 函数?
【问题讨论】:
-
你不能在 python 中做
len(3)。此外,在这种情况下不能使用大括号。您应该使用这些()或[]。 -
max()是一个函数,你需要把你的集合放在括号中,像这样:max({C_ki[1][1], C_ki[3][-7] , C_ki[2][0]}) -
但是你为什么不能……用
0替换-7?是否需要在特定条件下替换它,比如它是否存在? -
有一个公式必须考虑在内,有时会给出负值。