2015-08-28 52 views
0

例如爲什麼在代碼中,join函數加入了電路板列表的第一列?str.join如何在Python中工作

board=[] # is a list 

for i in range(5): # number of rows in the list 
    board.append(['O']*5) 
    print board 

[['O', 'O', 'O', 'O', 'O']] 
[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']] 
[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']] 
[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']] 
[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']] 

def print_board(board): 
    for row in board: 
     print " ".join(row) 
print print_board(board) 

O O O O O 
O O O O O 
O O O O O 
O O O O O 
O O O O O 
+0

你預期的產量是多少?在第一部分你已經創建了一個5x5的列表,並且在你的函數中你已經加入了行並打印了它們。 – Kasramvd

+1

'str.join(iterable)'*返回一個字符串,它是可迭代迭代中字符串的串聯。元素之間的分隔符是提供此方法的字符串。* – luoluo

回答

2

在這部分代碼:

for i in range(5): 
    board.append(['O']*5) 
    print board 

你只追加到5 0board表5只列出了更多。

在這另一部分:

def print_board(board): 
    for row in board: 
     print " ".join(row) 
print print_board(board) 

您打印逐行的board列表的元素,但它們與join轉換爲string

join返回一個字符串,它是作爲參數傳入的可迭代字符串中的串聯字符串。元素之間的分隔符是提供此方法的字符串。

在你的情況," ".join(row)將意味着:

回到我通過blankspace脫離他的所有元素的行列表。

當你這樣做print " ".join(row)你說:

打印我由blankspace脫離他的所有元素的行列表。