2016-12-07 126 views
1

我希望能夠索引一個多行字符串,如下面的hangman,根據字數不正確選擇正確的字符串。當我使用下面的代碼它不索引正確的數字,我不知道爲什麼。謝謝。正確索引字符串列表

a=list({ 

''' 
    | 
    O 
    \| 


''', 

''' 
    | 
    O 
    \|/ 
    | 

''', 

''' 
    | 
    O 
    \|/ 
    | 
    /
''', 

''' 
    | 
    O 
    \|/ 
    | 
    /\ 
''' 
}); 

for i in range(4): 
    print(a[i]) 

輸出:

 | 
    O 
    \|/ 
    | 



    | 
    O 
    \|/ 




    | 
    O 
    \|/ 
    | 
    /

    | 
    O 
    \|/ 
    | 
    /
+0

您可以將列表變成字典並添加一個'訂單'字段。或者,您總是可以根據字符串中的非空格字符數進行排序。 – SarTheFirst

+0

您可以從一個無序的集合中構建一個列表。去掉花括號:'a = [「...」,...]'。 –

回答

4

如果你想保留順序,不要使用{}符號,因爲這將創建一個從根本上無序的容器(無論是setdict -in你的情況下, set)。然後將其轉換爲list,但已經失效的時間太晚了。

相反,只是說:

a = [ 
    """" 
    first string 
    """, 
    # ... 
] 

方括號表示一個list,這是一個有序的容器。

1
a=[ 

''' 
    | 
    O 
    \| 


''', 

''' 
    | 
    O 
    \|/ 
    | 

''', 

''' 
    | 
    O 
    \|/ 
    | 
    /
''', 

''' 
    | 
    O 
    \|/ 
    | 
    /\\ 
''' 
] 

for i in range(4): 
    print(a[i]) 
+0

謝謝,其他人解釋這就是爲什麼我也在這裏接受他的,但很好的答案 – Rik

+0

不客氣。注意最後一步:\\ – Marvo