個如果要墊短線0.0的下面是一個辦法 - 墊滿= 0.0的,那麼只切片領先顯著部分:
data = """0.1 0.3 0.4 0.3
0.2 02. 1.2 -0.2
0.1 -1.22 0.12 9.2 0.2 0.2
0.3 -1.42 0.2 6.2 0.9 0.88
0.3 -1.42 0.12 1.1 0.1 0.88 0.06 0.14
4""".splitlines()
maxcols = int(data[-1])*2
emptyvalue = 0.0
pad = [emptyvalue]*maxcols
for line in data[:-1]:
# get the input data values, converted from strings to floats
vals = map(float, line.split())
# pad the input with default values, then only take the first maxcols values
vals = (vals + pad)[:maxcols]
# show our work in a nice table
print "[" + ','.join("%s%.2f" % (' ' if v>=0 else '', v) for v in vals) + "]"
打印
[ 0.10, 0.30, 0.40, 0.30, 0.00, 0.00, 0.00, 0.00]
[ 0.20, 2.00, 1.20,-0.20, 0.00, 0.00, 0.00, 0.00]
[ 0.10,-1.22, 0.12, 9.20, 0.20, 0.20, 0.00, 0.00]
[ 0.30,-1.42, 0.20, 6.20, 0.90, 0.88, 0.00, 0.00]
[ 0.30,-1.42, 0.12, 1.10, 0.10, 0.88, 0.06, 0.14]
我認爲我理解你想要的東西,直到你說'Array [i] [n * 2]'。這看起來像是一維數組的一維數組。一個二維數組被標記爲'a [i,j]',並且它的形狀類似於'(i,n * 2)'。那是你想要的嗎? – abarnert 2014-09-28 02:46:04
是的,對不起,我很困惑C++語法與python語法 – Jesus 2014-09-28 03:40:23
這不僅僅是語法問題。 C++根本就沒有2D數組;它有數組數組(當然,它有1D N * M數組,你可以手動跨步)。如果你真的想要像C++數組數組一樣,首先你不會有這個問題,因爲數組數組不一定是矩形,而是二維數組。 – abarnert 2014-09-28 07:03:11