在数组中追加行

时间:2015-05-17 16:12:44

标签: python arrays

我在python中创建了一个Draughts game,我在10到10之间创建了一个数组,我需要在整行中追加值,以便最终看起来像这样;

(
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 2, 0, 2, 0, 2, 0, 2, 0, 2],
[2, 0, 2, 0, 2, 0, 2, 0, 2, 0],
[0, 2, 0, 2, 0, 2, 0, 2, 0, 2],
[2, 0, 2, 0, 2, 0, 2, 0, 2, 0],
) 

到目前为止,这是我的尝试,我知道这是不正确的;

__author__ = 'Matt'

import array
Board_Array = array(10, 10)

pieces = ['Empty', 'White_Piece', 'Black_Piece', 'Upgraded_White_Piece', 'Upgraded_Black_Piece']
list(enumerate(pieces))

if Board_Array.array_equals == [1, 0]:
    for i in range(10):
        if (i%2) == 0:
            array.pop([i])
            array.insert(i,1)

1 个答案:

答案 0 :(得分:1)

您可以使用nested list comprehension

In [173]: [[((i+j) % 2)*k for i in range(10)] for k in (1,1,0,2,2) 
           for j in (0,1)]
Out[173]: 
[[0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
 [1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
 [0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
 [1, 0, 1, 0, 1, 0, 1, 0, 1, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
 [0, 2, 0, 2, 0, 2, 0, 2, 0, 2],
 [2, 0, 2, 0, 2, 0, 2, 0, 2, 0],
 [0, 2, 0, 2, 0, 2, 0, 2, 0, 2],
 [2, 0, 2, 0, 2, 0, 2, 0, 2, 0]]

这相当于

result = []
for k in (1,1,0,2,2):
    for j in (0,1):
        row = []
        for i in range(10):
            row.append(((i+j) % 2)*k)
        result.append(row)